Up Down VolatilityThis is just experimental. I wanted the flexibility in looking at volatility and this indicator gives you several ways to do so.
I haven't figured out the best way to use this yet but I suspect that as a form of entry confirmation indicator would be best.
If you find a way this works well for you please drop me a note. It would nice know someone found a way to use it successfully!
The options available are:
* Your source can be price or the ATR.
* It allows you to separate the volatility of the bearish and bullish candles and even allows you to produce differential.
* You can choose to run the result through any one of many smoothers.
With the above options you can look at:
* The normal volatility. That is not split into bearish and bullish components.
* The bearish and bullish volatility and the difference between them.
* The relative bearish and bullish volatility and the difference between them.
The "The relative bearish and bullish" is each one divided into the source before it was split into Up and Down or low/high divided by close which should make the max value roughly around 1.
The code is structured to easily drop into a bigger system so use it as a lone indicator or add the code to some bigger project you are creating. If you do integrate it into something else then send me a note as it would be nice to know it's being well used.
Enjoy and good luck!
Tìm kiếm tập lệnh với "Up down"
Up-Down RangeHere is an attempt to segregate ATR into ATR of up days and down days.
While setting trailing stops based on ATR, you probably need to consider more on how an instrument can drop during red days. Hence, ATR of only red days makes more compelling case than overall ATR. Another use case for this kind of indicator may be in options if you are selling puts and calls with the intent of pocketing premiums on expiry.
Parameters are as explained below:
Range Type : Different range types are tr (True Range) , close (difference between close prices), highlow (difference between high and low of candle)
Period : ATR Period
Moving Average Type : Moving Average Type for calculating ATR. Two additional types - min and max are added which calculates lowest and highest range in last n bars
HideFullAtr : Hides combined ATR if checked.
Up/Down Trend MarkerA simple indicator of trend by using 3 EMAs of multiplies of 2, 5 and 10, filtered by standard positive/negative directional movements (DM) which are the base of Average Directional Index (ADX).
The "Trend Strength" option is included to set the EMA multipliers and also the variation between DM+ and DM- which interpret the trend as a weak or a strong one.
Note that the markers only point to almost the beginning of the trends and just change the direction when the opposite trend is detected.
Feel free to send me your opinions.
Up Down Volume NYSE - STTA
English:
This indicator shows the NYSE's Up Volume (green) and Down Volume (red), nomalized against Total Volume
Extreme trading days with more than 90 % Volume are marked via triangles (breaches).
Deutsch:
Dieser Indikator zeigt das Up Volume (grün) und NYSE Down Volume (rot) der NYSE, nomaliziert gegen das Total Volume.
Extreme Handelstage mit mehr als 90 % Volume sind gekennzeichnet über Dreiecke (Überschreitungen).
Rounded Grid Levels🟩 Rounded Grid Levels is a visual tool that helps traders quickly identify key psychological price levels on any chart. By dynamically adapting to the user's visible screen area, it provides consistent, easy-to-read round number grids that align with price action. The indicator offers a traditional visualization of horizontal round level grids, along with enhanced options such as tilted grids that align with market sentiment, and fan-shaped grids for alternative price interaction views. It serves purely as a visual aid, providing an adaptable way to observe rounded price levels without making predictions or generating trading signals.
⚡ OVERVIEW ⚡
The Rounded Grid Levels indicator is a visual tool designed to help traders identify and track price levels that may hold psychological significance, such as round numbers or significant milestones. These levels often serve as potential areas for price reactions, including support, resistance, or points of market interest. The indicator's gridlines are determined by user-defined settings and adjust dynamically based on the visible chart area, meaning they are influenced by the user's current zoom level and perspective. This behavior is similar to TradingView's built-in grid lines found in the chart settings canvas, which also adjust in real-time based on the visible screen, ensuring the most relevant price levels are displayed. By default, the indicator provides consistent gridlines to represent traditional round number levels, offering a straightforward view of key psychological areas. Additionally, users have access to experimental and novel configurations, such as fan-shaped layouts, which expand from a central point and adapt directionally based on user settings. This configuration can provide an alternate perspective for traders, especially useful in analyzing broader market moves and visualizing expansion relative to the current price.
Users can display the gridlines in a variety of configurations, including horizontal, neutral, auto, or fan-shaped layouts, depending on their preferred method of analysis. This flexibility allows traders to focus on different types of price action without overcrowding the visual representation of price movements.
This indicator is intended purely as a visual aid for understanding how price interacts with rounded levels over time. It does not generate predictive trading signals or recommendations but rather provides traders with a customizable framework to enhance their market analysis.
⭕ ROUND NUMBERS IN MARKET PSYCHOLOGY ⭕
Round numbers hold a significant place in financial markets, largely due to the psychological tendencies of traders and investors. These levels often represent areas of interest where human behavior, market biases, and trading strategies converge. Whether it's prices ending in 000, 500, or other recognizable values, these levels naturally attract more attention and influence decision-making.
Round numbers can act as key support or resistance levels and often become focal points in market activity. They are frequently highlighted by financial media, embedded in products like options, and serve as foundations for various trading theories. Their impact extends across different market participants and strategies, making them important focal points in both short-term and long-term market analysis.
Round numbers play an important role in guiding trader behavior and market activity. To better understand why these levels are so impactful, there are several key factors that highlight their significance in trading and price dynamics:
Psychological Impact : Humans naturally gravitate toward round numbers, such as prices ending in 000, 500, or 00. These levels tend to draw attention as traders perceive them as psychologically significant. This behavior is rooted in the cognitive bias known as "left-digit bias," where people assign greater importance to rounded, more recognizable numbers. In trading, this means that prices at these levels are more memorable and thus more likely to attract attention, creating an area where traders focus their buying or selling decisions.
Order Clustering : Traders often place buy and sell orders around these rounded levels, either manually or automatically through stop and limit orders. This clustering leads to the formation of visible support or resistance zones, as the concentrated orders tend to influence price behavior around these key levels. Market participants tend to converge their orders around these price points because of their perceived psychological importance, creating a liquidity pocket. As a result, these areas often act as barriers that the price either struggles to cross or uses as springboards for further movement.
External Influences : Financial media frequently highlights round-number milestones, amplifying market sentiment and drawing traders' attention to these levels. Additionally, algorithmic trading systems often react to round-number thresholds, which can further reinforce price movements, creating self-reinforcing reactions at these levels. As media and analysts emphasize these milestones, more traders pay attention to them, leading to increased volume and often heightened volatility at those points. This self-reinforcing cycle makes round numbers an area where price movement can either accelerate due to a breakout or stall because of clustering interest.
Option Strike Prices : Options contracts typically have strike prices set at round numbers, and as expiration approaches, these levels can influence the price of the underlying asset due to concentrated trading activity. The behavior around these levels, often called "pinning," happens because traders adjust their positions to avoid unfavorable scenarios at these key strikes. This activity tends to concentrate price movement toward these levels as traders hedge their positions, leading to increased liquidity and the potential for abrupt price reactions near option expiration dates.
Whole Number Theory : This theory suggests that whole numbers act as natural psychological barriers, where traders tend to make decisions, place orders, or expect price reactions, making these levels crucial for analysis. Whole numbers are simple to remember and are often used as informal targets for profit-taking or stop placement. This behavior leads to a natural ebb and flow around these levels, where the market finds equilibrium temporarily before deciding on a future direction. Whole numbers tend to work like magnets, drawing price to them and often creating reactions that are visible across different timeframes.
Quarters Theory : Commonly used in Forex markets, this theory focuses on quarter-point increments (e.g., 1.0000, 1.2500, 1.5000) as key levels where price often pauses or reverses. These quarter levels are treated as important psychological barriers, with price frequently interacting at these intervals. Traders use these points to gauge market strength or weakness because quarter levels divide larger round-number ranges into more manageable and meaningful segments. For example, in highly traded forex pairs like EUR/USD, traders might treat 1.2500 as a significant barrier because it represents a halfway point between 1.0000 and 1.5000, offering a balanced reference point for decision-making.
Big Round Numbers : Major round numbers, such as 100, 500, or 1000, often attract significant attention and serve as psychological thresholds. Traders anticipate strong reactions when prices approach or cross these levels. This is often because large round numbers symbolize major milestones, and price behavior around them tends to signal important market sentiment shifts. When price crosses a major level, such as a stock moving above $100 or Bitcoin crossing $50,000, it often creates a surge in trading activity as it is viewed as a validation or invalidation of market trends, drawing in momentum traders and triggering both retail and institutional responses.
By visualizing these round levels on the chart, the Rounded Grid Levels indicator helps traders identify areas where price may pause, reverse, or gain momentum. While round numbers provide useful insights, they should be used in conjunction with other technical analysis tools for a comprehensive trading strategy.
🛠️ CONFIGURATION AND SETTINGS 🛠️
The Rounded Grid Levels indicator offers a variety of configurable settings to tailor the visualization according to individual trader preferences. Below are the key settings available for customization:
Custom Settings
Rounding Step : The Rounding Step parameter sets the minimum interval between gridlines. This value determines how closely spaced the rounded levels are on the chart. For example, if the Rounding Step is set to 100, gridlines will be displayed at every 100 points (e.g., $100, $200, $300) relative to the current price level. The Rounding Step is scaled to the chart's visible area, meaning users should adjust it appropriately for different assets to ensure effective visualization. Lower values provide a more granular view, while larger values give a broader, higher-level perspective.
Major Grids : Defines the interval at which major gridlines will appear compared to minor ones. For example, if the Rounding Step is 100 and Major Grids is set to 10, major gridlines will be displayed every $1,000, while minor gridlines will be at every $100. This distinction allows traders to better visualize key psychological levels by emphasizing significant price intervals.
Direction : Users can select the gridline direction, choosing between options such as 'Up', 'Down', 'Auto', or 'Neutral'. This setting controls how the gridlines extend relative to the current price level, which can help in analyzing directional trends.
Neutral Direction : This option provides balanced gridlines both above and below the current price, allowing traders to visualize support and resistance levels symmetrically. This is useful for analyzing sideways or ranging markets without directional bias.
Up Direction : The gridlines are tilted upwards, starting from visible lows and extending toward the rounded level at the current price. By choosing Up , traders emphasize an upward sentiment, visualizing price action that aligns with rising trends. This option helps illustrate potential areas where pullbacks may occur, as well as how price might expand upwards in the current market context.
Down Direction : The gridlines are tilted downwards, starting from visible highs and extending toward the rounded level at the current price. Selecting Down allows traders to emphasize a downward sentiment, visualizing how price may expand downwards, which is particularly useful when analyzing downtrends or potential correction levels. The gridlines provide an illustrative view of how price interacts with lower levels during market declines.
Auto Direction : The gridlines automatically adjust their direction based on recent market trends. This adaptive option allows traders to visualize gridlines that dynamically change according to price action, making it suitable for evolving market conditions where the direction is uncertain. It’s useful for traders looking for an indicator that moves in sync with market shifts and doesn’t require manual adjustment.
Grid Type : Allows users to choose between 'Linear' or 'Fan' grid types. The Linear type creates evenly spaced gridlines that can be either horizontal or tilted, depending on the chosen direction setting, providing a straightforward view of price levels. The Fan type radiates lines from a central point, offering a more dynamic perspective for analyzing price expansions relative to the current price. These grid types introduce experimental visualizations influenced by chart properties, including visible highs, lows, and the current price. Regardless of the configuration, the gridlines will always end at the current bar, which represents a rounded price level, ensuring consistency in how key price areas are displayed.
Extend : This setting allows gridlines to be projected into the future, helping traders see potential levels beyond the current bar. When enabled, the behavior of the extended lines varies based on the selected grid type and direction. For Neutral and Horizontal Linear settings, the extended gridlines maintain their round-number alignment indefinitely. However, for Up , Down , or Auto directions, the angle of the extended gridlines can change dynamically based on the chart’s visible high and low or the latest price action. As a result, extended lines may not continue to align with round-number levels beyond the current bar, reflecting instead the current trend and sentiment of the market. Regardless of direction, extended gridlines remain consistently spaced and either parallel or evenly distributed, ensuring a structured visual representation.
Color Settings : Users can customize the colors for resistance, support, and minor gridlines at the current price. This helps in visually distinguishing between different grid types and their significance on the chart.
Color Options
These configuration options make the Rounded Grid Levels indicator a versatile tool for traders looking to customize their charts based on their personal trading strategies and analytical preferences.
🖼️ CHART EXAMPLES 🖼️
The following chart examples illustrate different configurations available in the Rounded Grid Levels indicator. These examples show how variations in grid type, direction, and rounding step settings impact the visualization of price levels. Traders may find that smaller rounding steps are more effective on lower time frames, where precision is key, whereas larger rounding steps help to reduce clutter and highlight key levels on higher time frames. Each image includes a caption to explain the specific configuration used, helping users better understand how to apply these settings in different market conditions.
Smaller Rounding Step (100) : With a smaller rounding step, the gridlines are spaced closely together. This setting is particularly useful for lower time frames where price action is more granular and finer details are needed. It allows traders to track price interactions at narrower levels, but on higher time frames, it may lead to clutter and exceed Pine Script's 500-line limit.
Larger Rounding Step (1000) : With a larger rounding step, the gridlines are spaced farther apart. This visualization is better suited for higher time frames or broader market overviews, allowing users to focus on major psychological levels without overloading the chart. On lower time frames, this may result in fewer actionable levels, but it helps in maintaining clarity and staying within Pine Script's line limit.
Linear Grid Type, Neutral Direction (Traditional Rounded Price Levels) : The Linear gridlines are displayed in a neutral fashion, representing traditional round-number levels with consistent spacing above and below the current price. This layout helps visualize key psychological price levels over time in a straightforward manner.
Linear Grid Type, Down Direction : The Linear gridlines are tilted downwards, remaining parallel and ending at the rounded level at the current price. This setup emphasizes downward market sentiment, allowing traders to visualize price expansion towards lower levels, which is useful when analyzing downtrends or potential correction levels.
Linear Grid Type, Down Direction : The Linear gridlines are tilted downwards, extending from the current price to lower levels. Useful for observing downtrending price movements and visualizing pullback areas during uptrends.
Linear Grid Type, Auto Direction : The Linear gridlines adjust dynamically, tilting either upwards or downwards to align with recent price trends, remaining parallel and ending at the rounded level at the current price. This configuration reflects the current market sentiment and offers traders a flexible way to observe price dynamics as they develop in real time.
Fan Grid Type, Neutral Direction : The fan-shaped gridlines radiate symmetrically from a central point, ending at the rounded level at the current price. This configuration provides an unbiased view of price action, giving traders a balanced visualization of rounded levels without directional influence.
Fan Grid Type, Up Direction : The fan-shaped gridlines originate from lower visible price points and radiate upwards, ending at the rounded level at the current price. This layout helps visualize potential price expansion to higher levels, offering insights into upward momentum while maintaining a dynamic and evolving perspective on market conditions.
Fan Grid Type, Down Direction : The fan-shaped gridlines originate from higher visible price points and radiate downwards, ending at the rounded level at the current price. This setup is particularly useful for observing potential price expansion towards lower levels, illustrating areas where the price might extend during a downtrend.
Fan Grid Type, Auto Direction : The fan-shaped gridlines dynamically adjust, originating from visible chart points based on the current market trend, and radiate outward, ending at the rounded level at the current price. This adaptive visualization offers a continuously evolving representation that aligns with changing market sentiment, helping traders assess price expansion dynamically.
📊 SUMMARY 📊
The Rounded Grid Levels indicator helps traders highlight important round-number price levels on their charts, providing a dynamic way to visualize these psychological areas. With customizable gridline options—including traditional, tilted, and fan-shaped styles—users can adapt the indicator to suit their analysis needs. The gridlines adjust with chart zoom or scale, offering a flexible tool for observing price action, without providing specific trading signals or predictions.
⚙️ COMPATIBILITY AND LIMITATIONS ⚙️
Asset Compatibility :
The Rounded Grid Levels indicator is compatible with all asset classes, including cryptocurrencies, forex, stocks, and commodities. Users should adjust both the Rounding Step and the Major Grid settings to ensure the correct scale is used for the specific asset. This adjustment ensures that the most relevant round price levels are displayed effectively regardless of the instrument being analyzed. For instance, when analyzing BTCUSD, a higher Rounding Step may be needed compared to forex pairs like EURUSD, and the Major Grid value should also be adjusted to appropriately emphasize significant levels.
Line Limitations in Pine Script :
The Rounded Grid Levels indicator is subject to Pine Script's 500-line limit. This means that it cannot draw more than 500 gridlines on the chart at any given time. The number of gridlines depends directly on the chosen Rounding Step . If the steps are too small, the gridlines will be spaced too closely, causing the indicator to quickly reach the line limit. For example, if Ethereum is trading around $2,500, a Rounding Step of 100 might be appropriate, but a step of 1.00 would create too many gridlines, exceeding Pine Script's limit. Users should consider appropriate settings to avoid running into this constraint.
Runtime Error Considerations
When using the Rounded Grid Levels indicator, users might encounter a runtime error in specific scenarios. This typically happens if the Rounding Step is set too small, causing the indicator to exceed Pine Script's line limit or take too long to process. This can often occur when switching between charts that have significantly different price ranges. Since the Rounding Step requires flexibility to work with a wide variety of assets—ranging from decimals to thousands—it is not practically limited within the script itself. If a runtime error occurs, the recommended solution is to increase the Rounding Step to a larger value that better matches the current asset's price range.
Runtime Error: If the Rounding Step is too small for the current asset or chart, the indicator may generate a runtime error. Users should increase the Rounding Step to ensure proper visualization.
⚠️ DISCLAIMER ⚠️
The Rounded Grid Levels indicator is not designed as a predictive tool. While it extends gridlines into the future, this extension is purely for visual continuity and does not imply any forecast of future price movements. The primary function of this indicator is to help users visualize significant round number price levels.
The gridlines adjust dynamically based on the visible chart range, ensuring that the most relevant round price levels are displayed. This behavior allows the indicator to adapt to your current view of the market, but it should not be used to predict price movements. The indicator is intended as a visual aid and should be used alongside other tools in a comprehensive market analysis approach.
While gridlines may align with significant price levels in hindsight, they should not be interpreted as indicators of future price movements. Traders are encouraged to adjust settings based on their strategy and market conditions.
🧠 BEYOND THE CODE 🧠
The Rounded Grid Levels indicator, like other xxattaxx indicators , is designed with education and community collaboration in mind. Its open-source nature encourages exploration, experimentation, and the development of new grid calculation indicators, drawings, and strategies. We hope this indicator serves as a framework and a starting point for future innovations in grid trading.
Your comments, suggestions, and discussions are invaluable in shaping the future of this project. We actively encourage your feedback and contributions, which will directly help us refine and improve the Rounded Grid Levels indicator. We look forward to seeing the creative ways in which you use and enhance this tool.
Fractal Trend Detector [Skyrexio]Introduction
Fractal Trend Detector leverages the combination of Williams fractals and Alligator Indicator to help traders to understand with the high probability what is the current trend: bullish or bearish. It visualizes the potential uptrend with the coloring bars in green, downtrend - in red color. Indicator also contains two additional visualizations, the strong uptrend and downtrend as the green and red zones and the white line - trend invalidation level (more information in "Methodology and it's justification" paragraph)
Features
Optional strong up and downtrends visualization: with the specified parameter in settings user can add/hide the green and red zones of the strong up and downtrends.
Optional trend invalidation level visualization: with the specified parameter in settings user can add/hide the white line which shows the current trend invalidation price.
Alerts: user can set up the alert and have notifications when uptrend/downtrend has been started, strong uptrend/downtrend started.
Methodology and it's justification
In this script we apply the concept of trend given by Bill Williams in his book "Trading Chaos". This approach leverages the Alligator and Fractals in conjunction. Let's briefly explain these two components.
The Williams Alligator, created by Bill Williams, is a technical analysis tool used to identify trends and potential market reversals. It consists of three moving averages, called the jaw, teeth, and lips, which represent different time periods:
Jaw (Blue Line): The slowest line, showing a 13-period smoothed moving average shifted 8 bars forward.
Teeth (Red Line): The medium-speed line, an 8-period smoothed moving average shifted 5 bars forward.
Lips (Green Line): The fastest line, a 5-period smoothed moving average shifted 3 bars forward.
When the lines are spread apart and aligned, the "alligator" is "awake," indicating a strong trend. When the lines intertwine, the "alligator" is "sleeping," signaling a non-trending or range-bound market. This indicator helps traders identify when to enter or avoid trades.
Williams Fractals, introduced by Bill Williams, are a technical analysis tool used to identify potential reversal points on a price chart. A fractal is a series of at least five consecutive bars where the middle bar has the highest high (for a up fractal) or the lowest low (for a down fractal), compared to the two bars on either side.
Key Points:
Up fractal: Formed when the middle bar shows a higher high than the two preceding and two following bars, signaling a potential turning point downward.
Down fractal: Formed when the middle bar has a lower low than the two surrounding bars, indicating a potential upward reversal.
Fractals are often used with other indicators to confirm trend direction or reversal, helping traders make more informed trading decisions.
How we can use its combination? Let's explain the uptrend example. The up fractal breakout to the upside can be interpret as bullish sign, there is a high probability that uptrend has just been started. It can be explained as following: the up fractal created is the potential change in market's behavior. A lot of traders made a decision to sell and it created the pullback with the fractal at the top. But if price is able to reach the fractal's top and break it, this is a high probability sign that market "changed his opinion" and bullish trend has been started. The moment of breaking is the potential changing to the uptrend. Here is another one important point, this breakout shall happen above the Alligator's teeth line. If not, this crossover doesn't count and the downtrend potentially remaining. The inverted logic is true for the down fractals and downtrend.
According to this methodology we received the high probability up and downtrend changes, but we can even add it. If current trend established by the indicator as the uptrend and alligator's lines have the following order: lips is higher than teeth, teeth is higher than jaw, script count it as a strong uptrend and start print the green zone - zone between lips and jaw. It can be used as a high probability support of the current bull market. The inverted logic can be used for bearish trend and red zones: if lips is lower than teeth and teeth is lower than jaw it's interpreted by the indicator as a strong down trend.
Indicator also has the trend invalidation line (white line). If current bar is green and market condition is interpreted by the script as an uptrend you will see the invalidation line below current price. This is the price level which shall be crossed by the price to change up trend to down trend according to algorithm. This level is recalculated on every candle. The inverted logic is valid for downtrend.
How to use indicator
Apply it to desired chart and time frame. It works on every time frame.
Setup the settings with enabling/disabling visualization of strong up/downtrend zones and trend invalidation line. "Show Strong Bullish/Bearish Trends" and "Show Trend Invalidation Price" checkboxes in the settings. By default they are turned on.
Analyze the price action. Indicator colored candle in green if it's more likely that current state is uptrend, in red if downtrend has the high probability to be now. Green zones between two lines showing if current uptrend is likely to be strong. This zone can be used as a high probability support on the uptrend. The red zone show high probability of strong downtrend and can be used as a resistance. White line is showing the level where uptrend or downtrend is going be invalidated according to indicator's algorithm. If current bar is green invalidation line will be below the current price, if red - above the current price.
Set up the alerts if it's needed. Indicator has four custom alerts called "Uptrend has been started" when current bar closed as green and the previous was not green, "Downtrend has been started" when current bar closed red and the previous was not red, "Uptrend became strong" if script started printing the green zone "Downtrend became strong" if script started printing the red zone.
Disclaimer:
Educational and informational tool reflecting Skyrex commitment to informed trading. Past performance does not guarantee future results. Test indicators before live implementation.
Kinetic EMA & Volume with State EngineKinetic EMA & Volume with State Engine (EMVOL)
1. Introduction & Concept
The EMVOL indicator converts a dense family of EMA signals and volume flows into a compact “state engine”. Instead of looking at individual EMA lines or simple crossovers, the script treats each EMA as part of a kinetic vector field and classifies the market into interpretable states:
- Trend direction and strength (from a grid of prime‑period EMAs).
- Volume regime (expansion, contraction, climax, dry‑up).
- Order‑flow bias via delta (buy versus sell volume).
- A combined scenario label that summarises how these three layers interact.
The goal is educational: to help traders see that moving averages and volume become more meaningful when observed as a structure, not as isolated lines. EMVOL is therefore designed as a real‑time teaching tool, not as an automatic signal generator.
2. Volume Settings
Group: “Volume Settings”
A. Calculation Method
- Geometry (Source File) – Default mode.
Buy and sell volume are estimated from each candle’s geometry: the close is compared to the high/low range and the bar’s total volume is split proportionally between buyers and sellers. This approximation works on any TradingView plan and does not require lower‑timeframe data.
- Intrabar (Precise) – Reconstructs buy/sell volume using a lower timeframe via requestUpAndDownVolume(). The script asks TradingView for historical intrabar data (e.g., 15‑second bars) and builds buy/sell volume and delta from that stream. This mode can produce a more accurate view of order flow, but coverage is limited by your account’s history limits and the symbol’s available lower‑timeframe data.
B. Intrabar Resolution (If Precise)
- Intrabar Resolution (If Precise) – Selected only when the calculation method is “Intrabar (Precise)”. It defines which lower timeframe (for example 15S, 30S, 1m) is used to compute up/down volume. Smaller intrabar timeframes may give smoother and more granular deltas, but require more historical depth from the platform.
When “Intrabar (Precise)” is active, the dashboard’s extended section shows the resolution and the number of bars for which precise volume has been successfully retrieved, in the format:
- Mode: Intrabar (15S) – where N is the count of bars with valid high‑resolution volume data.
In Geometry mode this counter simply reflects the processed bars in the current session.
3. Kinetic Vector Settings
Group: “Kinetic Vector”
A. Vector Window
- Vector Window – Controls the temporal smoothing applied to the aggregated vectors (trend, volume, delta, etc.). Internally, each bar’s vector value is averaged with a simple moving window of this length.
- Shorter windows make the state engine more reactive and sensitive to local swings.
- Longer windows make the states more stable and better suited to higher‑timeframe structure.
B. Max Prime Period
- Max Prime Period – Sets the largest prime number used in the EMA grid. The engine builds a family of EMAs on prime lengths (2, 3, 5, 7, …) up to this limit and converts their slopes into angles.
- A higher limit increases the number of long‑horizon EMAs in the grid and makes the vectors sensitive to broader structure.
- A lower limit focuses the analysis on short- and medium‑term behaviour.
C. Price Source
- Price Source – The price series from which the kinetic EMA grid is built (e.g., Close, HLC3, OHLC4). Changing the source modifies the context that the state engine is reading but does not change the core logic.
4. State Engine Settings
Group: “State Engine Settings”
These inputs define how the continuous vectors are translated into discrete states.
A. Trend Thresholds
- Strong Trend Threshold – Value above which the trend vector is treated as “extreme bullish” and below which it is “extreme bearish”.
- Weak Trend Threshold – Inner boundary between neutral and directional conditions.
Roughly:
- |trend| < weak → Neutral trend state.
- weak < |trend| ≤ strong → Bullish/Bearish.
- |trend| > strong → Extreme Bullish/Extreme Bearish.
B. Volume Thresholds
- Volume Climax Threshold – Upper bound at which volume is considered “climax” (unusually expanded participation).
- Volume Expansion Threshold – Boundary for normal expansion versus contraction.
Conceptually:
- Volume above “expansion” indicates increasing activity.
- Volume near or above “climax” marks extreme participation.
- Negative values below the symmetric thresholds map to contraction and extreme dry‑up (liquidity vacuum) states.
C. Delta Thresholds
- Strong Delta Threshold – Cut‑off for extreme buying or selling dominance in delta.
- Weak Delta Threshold – Threshold for mild buy/sell bias versus neutral order flow.
Combined with the sign of the delta vector, these thresholds classify order flow as:
- Extreme Buy, Buy‑Dominant, Neutral, Sell‑Dominant, Extreme Sell.
D. State Hysteresis Bars
- State Hysteresis Bars – Minimum number of bars for which a new state must persist before the engine commits to the change. This prevents the dashboard from flickering during fast spikes and emphasises persistent market behaviour.
- Smaller values switch states quickly; larger values demand more confirmation.
5. Visual Interface
Group: “Visual Interface”
A. Ribbon Base Color
- Ribbon Base Color – Base hue for the multi‑layer EMA ribbon drawn around price. The script plots a dense grid of hidden EMAs and fills the gaps between them to form a semi‑transparent band. Narrow, overlapping bands hint at compression; wider separation hints at dispersion across EMA horizons.
B. Show Dashboard
- Show Dashboard – Toggles the on‑chart table which summarises the current state engine output. Disable this if you only want to keep the EMA ribbon and volume‑based structure on the price chart.
C. Color Theme
- Color Theme – Switch between a dark and light style for the dashboard background and text colours so that the table matches your chart theme.
D. Table Position
- Table Position – Places the dashboard at any corner or edge of the chart (Top / Middle / Bottom × Left / Centre / Right).
E. Table Size
- Table Size – Changes the dashboard’s text size (Tiny, Small, Normal, Large). Use a larger size on high‑resolution screens or when streaming.
F. Show Extended Info
- Show Extended Info – Adds diagnostic rows under the main state summary:
- Mode / Primes / Vector – Shows the current calculation mode (Geometry / Intrabar), the selected intrabar resolution and coverage in bars ( ), how many prime periods are active, and the vector window.
- Values – Displays the current aggregated vectors:
- P: price vector
- V: volume vector
- B: buy‑volume vector
- S: sell‑volume vector
- D: delta vector
Values are bounded between ‑1 and +1.
- Volume Stats – Prints the last bar’s raw buy volume, sell volume and delta as formatted numbers.
- Footer – A final row with the symbol and current time: #SYMBOL | HH:MM.
These extended rows are meant for inspecting how the engine is behaving under the hood while you scroll the chart and compare different assets or timeframes.
6. Language Settings
Group: “Language Settings”
- Select Language – Switches the entire dashboard between English and Turkish.
The underlying calculations and scenario logic are identical; only the labels, titles and comments in the table are translated.
7. Dashboard Structure & Reading Guide
The table summarises the current situation in a few rows:
1. System Header – Shows the script name and the active calculation method (“Geometry” or “Intrabar”).
2. Scenario Title – High‑level description of the current combined scenario (e.g., “Trending Buy Confirmed”, “Sideways Balanced”, “Bull Trap”, “Blow‑Off Top”). The background colour is derived from the scenario family (trending, compression, exhaustion, anomaly, etc.).
3. Bias / Trend Line – States the dominant trend bias derived from the trend vector (Extreme Bullish, Bullish, Neutral, Bearish, Extreme Bearish).
4. Signal / Consideration Line – A short sentence giving qualitative guidance about the current state (for example: continuation risk, exhaustion risk, trap‑like behaviour, or compression). This is deliberately phrased as a consideration, not as a direct trading signal.
5. Trend / Volume / Delta Rows – Three separate rows explain, in plain language, how the trend, volume regime and delta are classified at this bar.
6. Extended Info (optional) – Mode / primes / vector settings, current vector values, and last‑bar volume statistics, as described above.
Together, these rows are meant to be read as a narrative of what price, volume and order‑flow are doing, not as mechanical instructions.
8. State Taxonomy
The state engine organizes market behaviour in three stages.
8.1 Trend States (from the Price Vector)
- Extreme Bullish Trend – The prime‑grid price vector is strongly upward; most EMAs are aligned to the upside.
- Bullish Trend – Upward bias is present, but less extreme.
- Neutral Trend – EMAs are mixed or flat; price is effectively sideways relative to the grid.
- Bearish Trend – Downward bias, with the EMA grid sloping down.
- Extreme Bearish Trend – Strong downside alignment across the grid.
8.2 Volume Regime States (from the Volume Vector)
- Volume Climax (Buy‑Side) – Strong positive volume vector; participation is unusually high in the current direction.
- Volume Expansion – Activity above normal but below the climax threshold.
- Neutral Volume – No major expansion or contraction versus recent history.
- Volume Contraction – Activity is drying up compared with the past.
- Extreme Dry‑Up / Liquidity Vacuum – Very low participation; the market is thin and prone to slippage.
8.3 Delta Behaviour States (from the Delta Vector)
- Extreme Buy Delta – Buying pressure dominates strongly.
- Buy‑Dominant Delta – Buy volume exceeds sell volume, but not at an extreme.
- Neutral Delta – Buy and sell flows are roughly balanced.
- Sell‑Dominant Delta – Selling pressure dominates.
- Extreme Sell Delta – Aggressive, one‑sided selling.
8.4 Combined Scenario State s
EMVOL uses the three base states above to generate a single scenario label. These scenarios are designed to be read as context, not as entry or exit signals.
Trending Scenarios
1. Trending Buy Confirmed
- Bullish or extreme bullish trend, supported by expanding or climax volume and buy‑side delta.
- Educational idea: a healthy uptrend where both participation and order flow agree with the direction.
2. Trending Buy – Weak Volume
- Bullish trend, but volume is neutral, contracting or in dry‑up while delta is still buy‑side.
- Educational idea: price is advancing, yet participation is thinning; trend continuation becomes more fragile.
3. Trending Sell Confirmed
- Bearish or extreme bearish trend, with expanding or climax volume and sell‑side delta.
- Educational idea: strong downtrend with both volume and order‑flow confirmation.
4. Trending Sell – Weak Volume
- Bearish trend, but volume is neutral, contracting or very low while delta remains sell‑side.
- Educational idea: downside continues but with limited participation; vulnerable to short‑covering.
Sideways / Range Scenarios
5. Sideways Balanced
- Neutral trend, neutral delta, neutral volume.
- Classic range environment; low directional edge, suitable for observation and context rather than trend trading.
6. Sideways with Buy Pressure
- Neutral trend, but buy‑side delta is dominant or extreme.
- Range with latent accumulation: price may still appear sideways, but buyers are quietly more active.
7. Sideways with Sell Pressure
- Neutral trend with dominant or extreme sell‑side delta.
- Distribution‑like environment where price chops while sellers are gradually more aggressive.
Exhaustion & Volume Extremes
8. Exhaustion – Buy Risk
- Extreme bullish trend, volume climax and strong buy‑side delta.
- Educational idea: very strong up‑move where both participation and delta are already stretched; risk of exhaustion or blow‑off.
9. Exhaustion – Sell Risk
- Extreme bearish trend, volume dry‑up and strong sell‑side delta.
- Suggests one‑sided selling into increasingly thin liquidity.
10. Volume Climax (Buy)
- Neutral trend, neutral delta, but volume at climax levels.
- Often associated with a “big event” bar where participation spikes without a clear directional commitment.
11. Volume Climax (Sell / Dry‑Up)
- Neutral trend and neutral delta, while the volume vector indicates an extreme dry‑up.
- Highlights a stand‑still episode: very limited interest from both sides, increasing the sensitivity to future impulses.
Divergences
12. Divergence – Bullish Context
- Bullish or extreme bullish trend, but delta has faded back to neutral.
- Price trend continues while order‑flow conviction softens; can precede pauses or complex corrections.
13. Divergence – Bearish Context
- Bearish or extreme bearish trend with a neutral delta.
- Downtrend persists, but selling pressure no longer dominates as clearly.
Consolidation & Compression
14. Consolidation
- Default state when no specific pattern dominates and the market is broadly balanced.
- Educational use: treat this as a “no strong edge” label; focus on structure rather than direction.
15. Breakout Imminent
- Neutral trend with contracting volume.
- Compression phase where energy is building up; often precedes transitions into trending or shock scenarios.
Traps & Hidden Divergences
16. Bull Trap
- Bullish trend, with neutral or contracting volume and sell‑side delta.
- Price appears strong, but order‑flow shifts against it; often seen near fake breakouts or failing rallies.
17. Bear Trap
- Bearish trend, neutral or contracting volume, but buy‑side delta.
- Downtrend “looks” intact, while buyers become more aggressive underneath the surface.
18. Hidden Bullish Divergence
- Bullish trend, contracting volume, but strong buy‑side delta.
- Educational idea: price dips or slows while aggressive buyers step in, often inside an ongoing uptrend.
19. Hidden Bearish Divergence
- Bearish trend, volume expansion and strong sell‑side delta.
- Reinforced downside pressure even if price is temporarily retracing.
Reversal & Transition Patterns
20. Reversal to Bearish
- Neutral trend, volume climax and strong sell‑side delta.
- Suggests that heavy selling appears at the top of a move, turning a previously neutral or rising context into potential downside.
21. Reversal to Bullish
- Neutral trend, extreme volume dry‑up and strong buy‑side delta.
- Often associated with selling exhaustion where buyers start to take control.
22. Indecision Spike
- Neutral trend with extreme volume (climax or dry‑up) but neutral delta.
- Crowd participation changes sharply while order‑flow remains undecided; treat as an informational spike rather than a direction.
Extended Compression & Acceleration
23. Coiling Phase
- Neutral trend, contracting volume, and delta that is neutral or only mildly one‑sided.
- Extended compression where price, volume and delta all contract into a tightly coiled range, often preceding a strong move.
24. Bullish Acceleration
- Bullish trend with volume expansion and strong buy‑side delta.
- Uptrend not only continues but gains kinetic strength; educationally, this illustrates how trend, volume and delta align in the strongest phases of a move.
25. Bearish Acceleration
- Bearish trend with volume expansion and strong sell‑side delta.
- Mirror image of Bullish Acceleration on the downside.
Trend Exhaustion & Climax Reversal
26. Bull Exhaustion
- Bullish or extreme bullish trend, with contraction or dry‑up in volume and buy‑side or neutral delta.
- The move has already travelled far; participation fades while price is still elevated.
27. Bear Exhaustion
- Bearish or extreme bearish trend, with volume climax or contraction and sell‑side or neutral delta.
- Down‑move may be approaching a point where additional selling pressure has diminishing impact.
28. Blow‑Off Top
- Extreme bullish trend, volume climax and extreme buy delta all at once.
- Classic blow‑off behaviour: price, volume and order‑flow are simultaneously stretched in the same direction.
29. Selling Climax Reversal
- Extreme bearish trend with extreme volume dry‑up and extreme sell‑side delta.
- Marks a very aggressive capitulation phase that can precede major rebounds.
Advanced VSA / Anomaly Scenarios
30. Absorption
- Typically neutral trend with expanding or climax volume and extreme delta (either buy or sell).
- Educational focus: large participants are aggressively absorbing liquidity from the opposite side, while price remains relatively contained.
31. Distribution
- Scenario where volume remains elevated while directional conviction weakens and the trend slows.
- Represents potential “selling into strength” or “buying into weakness”, depending on the active side.
32. Liquidity Vacuum
- Combination of thin liquidity (extreme dry‑up) with a directional trend or strong delta.
- Highlights environments where even small orders can move price disproportionately.
33. Anomaly / Shock Event
- Triggered when the vector z‑scores detect rare combinations of price, volume and delta behaviour that deviate from their own historical distribution.
- Intended as a warning label for unusual events rather than a specific tradeable pattern.
9. Educational Usage Notes
- EMVOL does not produce mechanical “buy” or “sell” commands. Instead, it classes each bar into an interpretable state so that traders can study how trends, volume and order‑flow interact over time.
- A common exercise is to overlay your usual EMA crossovers, support/resistance or price patterns and observe which EMVOL scenarios appear around entries, exits, traps and climaxes.
- Because the vectors are normalized (bounded between ‑1 and +1) and then discretized, the same conceptual states can be compared across different symbols and timeframes.
10. Disclaimer & Educational Purpose
This indicator is provided strictly as an educational and analytical tool. Its purpose is to help visualise how price, volume and order‑flow interact; it is not designed to function as a stand‑alone trading system.
Please note:
1. No Automated Strategy – The script does not implement a complete trading strategy. Scenario labels and dashboard messages are descriptive and should not be followed as unconditional entry or exit signals.
2. No Financial Advice – All information produced by this indicator is general market analysis. It must not be interpreted as investment, financial or trading advice, or as a recommendation to buy or sell any instrument.
3. Risk Warning – Trading and investing involve substantial risk, including the risk of loss. Always perform your own analysis, use appropriate position sizing and risk management, and consult a qualified professional if needed. You are solely responsible for any decisions made using this tool.
4. Data Precision & Platform Limits – The “Intrabar (Precise)” mode depends on the availability of high‑resolution historical data at the chosen intrabar timeframe. If your TradingView plan or the symbol’s history does not provide sufficient depth, this mode may only partially cover the visible chart. In such cases, consider switching to “Geometry (Source File)” for a fully populated view.
Trend Pivots Profile [BigBeluga]🔵 OVERVIEW
The Trend Pivots Profile is a dynamic volume profile tool that builds profiles around pivot points to reveal where liquidity accumulates during trend shifts. When the market is in an uptrend , the indicator generates profiles at low pivots . In a downtrend , it builds them at high pivots . Each profile is constructed using lower timeframe volume data for higher resolution, making it highly precise even in limited space. A colored trendline helps traders instantly recognize the prevailing trend and anticipate which type of profile (bullish or bearish) will form.
🔵 CONCEPTS
Pivot-Driven Profiles : Profiles are only created when a new pivot forms, aligning liquidity analysis with market structure shifts.
Trend-Contextual : Profiles form at low pivots in uptrends and at high pivots in downtrends.
Lower Timeframe Data : Volume and close values are pulled from smaller timeframes to provide detailed, high-resolution profiles inside larger pivot windows.
Adaptive Bin Sizing : Bin size is automatically calculated relative to ATR, ensuring consistent precision across different markets and volatility conditions.
Point of Control (PoC) : The highest-volume level within each profile is marked with a PoC line that extends until the next pivot forms.
Trendline Visualization : A wide, semi-transparent line follows the rolling average of highs and lows, colored blue in uptrends and orange in downtrends.
🔵 FEATURES
Pivot Length Control : Adjust how far back the script looks to detect pivots (e.g., length 5 → profiles cover 10 bars after pivot).
Pivot Profile toggle :
On → draw the filled pivot profile + PoC + pivot label.
Off → hide profiles; show only PoC level (clean S/R mode).
Trend Length Filter : Smooths trendline detection to ensure reliable up/down bias.
Precise Volume Distribution : Volume is aggregated into bins, creating a smooth volume curve around the pivot range.
PoC Extension : Automatically extends the most active price level until a new pivot is confirmed.
Profile Visualization : Profiles appear as filled shapes anchored at the pivot candle, colored based on trend.
Trendline Overlay : Thick, semi-transparent trendline provides visual guidance on directional bias.
Automatic Cleanup : Old profiles are deleted once they exceed the chart’s capacity (default 25 stored profiles).
🔵 HOW TO USE
Spotting Trend Liquidity : In an uptrend, monitor profiles at low pivots to see where buyers concentrated. In downtrends, use high-pivot profiles to spot sell-side pressure.
Watch the PoC : The PoC line highlights the strongest traded level of the pivot structure—expect reactions when price retests it.
Anticipate Trend Continuation/Reversal : Use the trendline (blue = bullish, orange = bearish) together with pivot profiles to forecast directional momentum.
Combine with HTF Context : Overlay with higher timeframe structure (order blocks, liquidity zones, or FVGs) for confluence.
Fine-Tune with Inputs : Adjust Pivot Length for sensitivity and Trend Length for smoother or faster trend shifts.
🔵 CONCLUSION
The Trend Pivots Profile blends pivot-based structure with precise volume profiling. By dynamically plotting profiles on pivots aligned with the prevailing trend, highlighting PoCs, and overlaying a directional trendline, it equips traders with a clear view of liquidity clusters and directional momentum—ideal for anticipating reactions, pullbacks, or breakouts.
Kalman Adjusted Average True Range [BackQuant]Kalman Adjusted Average True Range
A volatility-aware trend baseline that fuses a Kalman price estimate with ATR “rails” to create a smooth, adaptive guide for entries, exits, and trailing risk.
Built on my original Kalman
This indicator is based on my original Kalman Price Filter:
That core smoother is used here to estimate the “true” price path, then blended with ATR to control step size and react proportionally to market noise.
What it plots
Kalman ATR Line the main baseline that turns up/down with the filtered trend.
Optional Moving Average of the Kalman ATR a secondary line for confluence (SMA/Hull/EMA/WMA/DEMA/RMA/LINREG/ALMA).
Candle Coloring (optional) paint bars by the baseline’s current direction.
Why combine Kalman + ATR?
Kalman reduces measurement noise and produces a stable path without the lag of heavy MAs.
ATR rails scale the baseline’s step to current volatility, so it’s calm in chop and more responsive in expansion.
The result is a single, intelligible line you can trade around: slope-up = constructive; slope-down = caution.
How it works (plain English)
Each bar, the Kalman filter updates an internal state (tunable via Process Noise , Measurement Noise , and Filter Order ) to estimate the underlying price.
An ATR band (Period × Factor) defines the allowed per-bar adjustment. The baseline cannot “jump” beyond those rails in one step.
A direction flip is detected when the baseline’s slope changes sign (upturn/downturn), and alerts are provided for both.
Typical uses
Trend confirmation Trade in the baseline’s direction; avoid fading a firmly rising/falling line.
Pullback timing Look for entries when price mean-reverts toward a rising baseline (or exits on tags of a falling one).
Trailing risk Use the baseline as a dynamic guide; many traders set stops a small buffer beyond it (e.g., a fraction of ATR).
Confluence Enable the MA overlay of the Kalman ATR; alignment (baseline above its MA and rising) supports continuation.
Inputs & what they do
Calculation
Kalman Price Source which price the filter tracks (Close by default).
Process Noise how quickly the filter can adapt. Higher = more responsive (but choppier).
Measurement Noise how much you distrust raw price. Higher = smoother (but slower to turn).
Filter Order (N) depth of the internal state array. Higher = slightly steadier behavior.
Kalman ATR
Period ATR lookback. Shorter = snappier; longer = steadier.
Factor scales the allowed step per bar. Larger factors permit faster drift; smaller factors clamp movement.
Confluence (optional)
MA Type & Period compute an MA on the Kalman ATR line , not on price.
Sigma (ALMA) if ALMA is selected, this input controls the curve’s shape. (Ignored for other MA types.)
Visuals
Plot Kalman ATR toggle the main line.
Paint Candles color bars by up/down slope.
Colors choose long/short hues.
Signals & alerts
Trend Up baseline turns upward (slope crosses above 0).
Alert: “Kalman ATR Trend Up”
Trend Down baseline turns downward (slope crosses below 0).
Alert: “Kalman ATR Trend Down”
These are state flips , not “price crossovers,” so you avoid many one-bar head-fakes.
How to start (fast presets)
Swing (daily/4H) ATR Period 7–14, Factor 0.5–0.8, Process Noise 0.02–0.05, Measurement Noise 2–4, N = 3–5.
Intraday (5–15m) ATR Period 5–7, Factor 0.6–1.0, Process Noise 0.05–0.10, Measurement Noise 2–3, N = 3–5.
Slow assets / FX raise Measurement Noise or ATR Period for calmer lines; drop Factor if the baseline feels too jumpy.
Reading the line
Rising & curving upward momentum building; consider long bias until a clear downturn.
Flat & choppy regime uncertainty; many traders stand aside or tighten risk.
Falling & accelerating distribution lower; short bias until a clean upturn.
Practical playbook
Continuation entries After a Trend Up alert, wait for a minor pullback toward the baseline; enter on evidence the line keeps rising.
Exit/reduce If long and the baseline flattens then turns down, trim or exit; reverse logic for shorts.
Filters Add a higher-timeframe check (e.g., only take longs when the daily Kalman ATR is rising).
Stops Place stops just beyond the baseline (e.g., baseline − x% ATR for longs) to avoid “tag & reverse” noise.
Notes
This is a guide to state and momentum, not a guarantee. Combine with your process (structure, volume, time-of-day) for decisions.
Settings are asset/timeframe dependent; start with the presets and nudge Process/Measurement Noise until the baseline “feels right” for your market.
Summary
Kalman ATR takes the noise-reduction of a Kalman price estimate and couples it with volatility-scaled movement to produce a clean, adaptive baseline. If you liked the original Kalman Price Filter (), this is its trend-trading cousin purpose-built for cleaner state flips, intuitive trailing, and confluence with your existing
Multi-TF Trend Table (Configurable)1) What this tool does (in one minute)
A compact, multi‑timeframe dashboard that stacks eight timeframes and tells you:
Trend (fast MA vs slow MA)
Where price sits relative to those MAs
How far price is from the fast MA in ATR terms
MA slope (rising, falling, flat)
Stochastic %K (with overbought/oversold heat)
MACD momentum (up or down)
A single score (0%–100%) per timeframe
Alignment tick when trend, structure, slope and momentum all agree
Use it to:
Frame bias top‑down (M→W→D→…→15m)
Time entries on your execution timeframe when the higher‑TF stack is aligned
Avoid counter‑trend traps when the table is mixed
2) Table anatomy (each column explained)
The table renders 9 columns × 8 rows (one row per timeframe label you define).
TF — The label you chose for that row (e.g., Month, Week, 4H). Cosmetic; helps you read the stack.
Trend — Arrow from fast MA vs slow MA: ↑ if fastMA > slowMA (up‑trend), ↓ otherwise (down‑trend). Cell is green for up, red for down.
Price Pos — One‑character structure cue:
🔼 if price is above both fast and slow MAs (bullish structure)
🔽 if price is below both (bearish structure)
– otherwise (between MAs / mixed)
MA Dist — Distance of price from the fast MA measured in ATR multiples:
XS < S < M < L < XL according to your thresholds (see §3.3). Useful for judging stretch/mean‑reversion risk and stop sizing.
MA Slope — The fast MA one‑bar slope:
↑ if fastMA - fastMA > 0
↓ if < 0
→ if = 0
Stoch %K — Rounded %K value (default 14‑1‑3). Background highlights when it aligns with the trend:
Green heat when trend up and %K ≤ oversold
Red heat when trend down and %K ≥ overbought Tooltip shows K and D values precisely.
Trend % — Composite score (0–100%), the dashboard’s confidence for that timeframe:
+20 if trendUp (fast>slow)
+20 if fast MA slope > 0
+20 if MACD up (signal definition in §2.8)
+20 if price above fast MA
+20 if price above slow MA
Background colours:
≥80 lime (strong alignment)
≥60 green (good)
≥40 orange (mixed)
<40 grey (weak/contrary)
MACD — 🟢 if EMA(12)−EMA(26) > its EMA(9), else 🔴. It’s a simple “momentum up/down” proxy.
Align — ✔ when everything is in gear for that trend direction:
For up: trendUp and price above both MAs and slope>0 and MACD up
For down: trendDown and price below both MAs and slope<0 and MACD down Tooltip spells this out.
3) Settings & how to tune them
3.1 Timeframes (TF1–TF8)
Inputs: TF1..TF8 hold the resolution strings used by request.security().
Defaults: M, W, D, 720, 480, 240, 60, 15 with display labels Month, Week, Day, 12H, 8H, 4H, 1H, 15m.
Tips
Keep a top‑down funnel (e.g., Month→Week→Day→H4→H1→M15) so you can cascade bias into entries.
If you scalp, consider D, 240, 120, 60, 30, 15, 5, 1.
Crypto weekends: consider 2D in place of W to reflect continuous trading.
3.2 Moving Average (MA) group
Type: EMA, SMA, WMA, RMA, HMA. Changes both fast & slow MA computations everywhere.
Fast Length: default 20. Shorten for snappier trend/slope & tighter “price above fast” signals.
Slow Length: default 200. Controls the structural trend and part of the score.
When to change
Swing FX/equities: EMA 20/200 is a solid baseline.
Mean‑reversion style: consider SMA 20/100 so trend flips slower.
Crypto/indices momentum: HMA 21 / EMA 200 will read slope more responsively.
3.3 ATR / Distance group
ATR Length: default 14; longer makes distance less jumpy.
XS/S/M/L thresholds: define the labels in column MA Dist. They are compared to |close − fastMA| / ATR.
Defaults: XS 0.25×, S 0.75×, M 1.5×, L 2.5×; anything ≥L is XL.
Usage
Entries late in a move often occur at L/XL; consider waiting for a pullback unless you are trading breakouts.
For stops, an initial SL around 0.75–1.5 ATR from fast MA often sits behind nearby noise; use your plan.
3.4 Stochastic group
%K Length / Smoothing / %D Smoothing: defaults 14 / 1 / 3.
Overbought / Oversold: defaults 70 / 30 (adjust to 80/20 for trendier assets).
Heat logic (column Stoch %K): highlights when a pullback aligns with the dominant trend (oversold in an uptrend, overbought in a downtrend).
3.5 View
Full Screen Table Mode: centers and enlarges the table (position.middle_center). Great for clean screenshots or multi‑monitor setups.
4) Signal logic (how each datapoint is computed)
Per‑TF data (via a single request.security()):
fastMA, slowMA → based on your MA Type and lengths
%K, %D → Stoch(High,Low,Close,kLen) smoothed by kSmooth, then %D smoothed by dSmooth
close, ATR(atrLen) → for structure and distance
MACD up → (EMA12−EMA26) > EMA9(EMA12−EMA26)
fastMA_prev → yesterday/previous‑bar fast MA for slope
TrendUp → fastMA > slowMA
Price Position → compares close to both MAs
MA Distance Label → thresholds on abs(close − fastMA)/ATR
Slope → fastMA − fastMA
Score (0–100) → sum of the five 20‑point checks listed in §2.7
Align tick → conjunction of trend, price vs both MAs, slope and MACD (see §2.9)
Important behaviour
HTF values are sampled at the execution chart’s bar close using Pine v6 defaults (no lookahead). So the daily row updates only when a daily bar actually closes.
5) How to trade with it (playbooks)
The table is a framework. Entries/exits still follow your plan (e.g., S/D zones, price action, risk rules). Use the table to know when to be aggressive vs patient.
Playbook A — Trend continuation (pullback entry)
Look for Align ✔ on your anchor TFs (e.g., Week+Day both ≥80 and green, Trend ↑, MACD 🟢).
On your execution TF (e.g., H1/H4), wait for Stoch heat with the trend (oversold in uptrend or overbought in downtrend), and MA Dist not at XL.
Enter on your trigger (break of pullback high/low, engulfing, retest of fast MA, or S/D first touch per your plan).
Risk: consider ATR‑based SL beyond structure; size so 0.25–0.5% account risk fits your rules.
Trail or scale at M/L distances or when score deteriorates (<60).
Playbook B — Breakout with confirmation
Mixed stack turns into broad green: Trend % jumps to ≥80 on Day and H4; MACD flips 🟢.
Price Pos shows 🔼 across H4/H1 (above both MAs). Slope arrows ↑.
Enter on the first clean base‑break with volume/impulse; avoid if MA Dist already XL.
Playbook C — Mean‑reversion fade (advanced)
Use only when higher TFs are not aligned and the row you trade shows XL distance against the higher‑TF context. Take quick targets back to fast MA. Lower win‑rate, faster management.
Playbook D — Top‑down filter for Supply/Demand strategy
Trade first retests only in the direction where anchor TFs (Week/Day) have Align ✔ and Trend % ≥60. Skip counter‑trend zones when the stack is red/green against you.
6) Reading examples
Strong bullish stack
Week: ↑, 🔼, S/M, slope ↑, %K=32 (green heat), Trend 100%, MACD 🟢, Align ✔
Day: ↑, 🔼, XS/S, slope ↑, %K=45, Trend 80%, MACD 🟢, Align ✔
Action: Look for H4/H1 pullback into demand or fast MA; buy continuation.
Late‑stage thrust
H1: ↑, 🔼, XL, slope ↑, %K=88
Day/H4: only 60–80%
Action: Likely overextended on H1; wait for mean reversion or multi‑TF alignment before chasing.
Bearish transition
Day flips from 60%→40%, Trend ↓, MACD turns 🔴, Price Pos “–” (between MAs)
Action: Stand aside for longs; watch for lower‑high + Align ✔ on H4/H1 to join shorts.
7) Practical tips & pitfalls
HTF closure: Don’t assume a daily row changed mid‑day; it won’t settle until the daily bar closes. For intraday anticipation, watch H4/H1 rows.
MA Type consistency: Changing MA Type changes slope/structure everywhere. If you compare screenshots, keep the same type.
ATR thresholds: Calibrate per asset class. FX may suit defaults; indices/crypto might need wider S/M/L.
Score ≠ signal: 100% does not mean “must buy now.” It means the environment is favourable. Still execute your trigger.
Mixed stacks: When rows disagree, reduce size or skip. The tool is telling you the market lacks consensus.
8) Customisation ideas
Timeframe presets: Save layouts (e.g., Swing, Intraday, Scalper) as indicator templates in TradingView.
Alternative momentum: Replace the MACD condition with RSI(>50/<50) if desired (would require code edit).
Alerts: You can add alert conditions for (a) Align ✔ changes, (b) Trend % crossing 60/80, (c) Stoch heat events. (Not shipped in this script, but easy to add.)
9) FAQ
Q: Why do I sometimes see a dash in Price Pos? A: Price is between fast and slow MAs. Structure is mixed; seek clarity before acting.
Q: Does it repaint? A: No, higher‑TF values update on the close of their own bars (standard request.security behaviour without lookahead). Intra‑bar they can fluctuate; decisions should be made at your bar close per your plan.
Q: Which columns matter most? A: For trend‑following: Trend, Price Pos, Slope, MACD, then Stoch heat for entries. The Score summarises, and Align enforces discipline.
Q: How do I integrate with ATR‑based risk? A: Use the MA Dist label to avoid chasing at extremes and to size stops in ATR terms (e.g., SL behind structure at ~1–1.5 ATR).
Volume Weighted RSI (VW RSI)The Volume Weighted RSI (VW RSI) is a momentum oscillator designed for TradingView, implemented in Pine Script v6, that enhances the traditional Relative Strength Index (RSI) by incorporating trading volume into its calculation. Unlike the standard RSI, which measures the speed and change of price movements based solely on price data, the VW RSI weights its analysis by volume, emphasizing price movements backed by significant trading activity. This makes the VW RSI particularly effective for identifying bullish or bearish momentum, overbought/oversold conditions, and potential trend reversals in markets where volume plays a critical role, such as stocks, forex, and cryptocurrencies.
Key Features
Volume-Weighted Momentum Calculation:
The VW RSI calculates momentum by comparing the volume associated with upward price movements (up-volume) to the volume associated with downward price movements (down-volume).
Up-volume is the volume on bars where the closing price is higher than the previous close, while down-volume is the volume on bars where the closing price is lower than the previous close.
These volumes are smoothed over a user-defined period (default: 14 bars) using a Running Moving Average (RMA), and the VW RSI is computed using the formula:
\text{VW RSI} = 100 - \frac{100}{1 + \text{VoRS}}
where
\text{VoRS} = \frac{\text{Average Up-Volume}}{\text{Average Down-Volume}}
.
Oscillator Range and Interpretation:
The VW RSI oscillates between 0 and 100, with a centerline at 50.
Above 50: Indicates bullish volume momentum, suggesting that volume on up bars dominates, which may signal buying pressure and a potential uptrend.
Below 50: Indicates bearish volume momentum, suggesting that volume on down bars dominates, which may signal selling pressure and a potential downtrend.
Overbought/Oversold Levels: User-defined thresholds (default: 70 for overbought, 30 for oversold) help identify potential reversal points:
VW RSI > 70: Overbought, indicating a possible pullback or reversal.
VW RSI < 30: Oversold, indicating a possible bounce or reversal.
Visual Elements:
VW RSI Line: Plotted in a separate pane below the price chart, colored dynamically based on its value:
Green when above 50 (bullish momentum).
Red when below 50 (bearish momentum).
Gray when at 50 (neutral).
Centerline: A dashed line at 50, optionally displayed, serving as the neutral threshold between bullish and bearish momentum.
Overbought/Oversold Lines: Dashed lines at the user-defined overbought (default: 70) and oversold (default: 30) levels, optionally displayed, to highlight extreme conditions.
Background Coloring: The background of the VW RSI pane is shaded red when the indicator is in overbought territory and green when in oversold territory, providing a quick visual cue of potential reversal zones.
Alerts:
Built-in alerts for key events:
Bullish Momentum: Triggered when the VW RSI crosses above 50, indicating a shift to bullish volume momentum.
Bearish Momentum: Triggered when the VW RSI crosses below 50, indicating a shift to bearish volume momentum.
Overbought Condition: Triggered when the VW RSI crosses above the overbought threshold (default: 70), signaling a potential pullback.
Oversold Condition: Triggered when the VW RSI crosses below the oversold threshold (default: 30), signaling a potential bounce.
Input Parameters
VW RSI Length (default: 14): The period over which the up-volume and down-volume are smoothed to calculate the VW RSI. A longer period results in smoother signals, while a shorter period increases sensitivity.
Overbought Level (default: 70): The threshold above which the VW RSI is considered overbought, indicating a potential reversal or pullback.
Oversold Level (default: 30): The threshold below which the VW RSI is considered oversold, indicating a potential reversal or bounce.
Show Centerline (default: true): Toggles the display of the 50 centerline, which separates bullish and bearish momentum zones.
Show Overbought/Oversold Lines (default: true): Toggles the display of the overbought and oversold threshold lines.
How It Works
Volume Classification:
For each bar, the indicator determines whether the price movement is upward or downward:
If the current close is higher than the previous close, the bar’s volume is classified as up-volume.
If the current close is lower than the previous close, the bar’s volume is classified as down-volume.
If the close is unchanged, both up-volume and down-volume are set to 0 for that bar.
Smoothing:
The up-volume and down-volume are smoothed using a Running Moving Average (RMA) over the specified period (default: 14 bars) to reduce noise and provide a more stable measure of volume momentum.
VW RSI Calculation:
The Volume Relative Strength (VoRS) is calculated as the ratio of smoothed up-volume to smoothed down-volume.
The VW RSI is then computed using the standard RSI formula, but with volume data instead of price changes, resulting in a value between 0 and 100.
Visualization and Alerts:
The VW RSI is plotted with dynamic coloring to reflect its momentum direction, and optional lines are drawn for the centerline and overbought/oversold levels.
Background coloring highlights overbought and oversold conditions, and alerts notify the trader of significant crossings.
Usage
Timeframe: The VW RSI can be used on any timeframe, but it is particularly effective on intraday charts (e.g., 1-hour, 4-hour) or daily charts where volume data is reliable. Shorter timeframes may require a shorter length for increased sensitivity, while longer timeframes may benefit from a longer length for smoother signals.
Markets: Best suited for markets with significant and reliable volume data, such as stocks, forex, and cryptocurrencies. It may be less effective in markets with low or inconsistent volume, such as certain futures contracts.
Trading Strategies:
Trend Confirmation:
Use the VW RSI to confirm the direction of a trend. For example, in an uptrend, look for the VW RSI to remain above 50, indicating sustained bullish volume momentum, and consider buying on pullbacks when the VW RSI dips but stays above 50.
In a downtrend, look for the VW RSI to remain below 50, indicating sustained bearish volume momentum, and consider selling on rallies when the VW RSI rises but stays below 50.
Overbought/Oversold Conditions:
When the VW RSI crosses above 70, the market may be overbought, suggesting a potential pullback or reversal. Consider taking profits on long positions or preparing for a short entry, but confirm with price action or other indicators.
When the VW RSI crosses below 30, the market may be oversold, suggesting a potential bounce or reversal. Consider entering long positions or covering shorts, but confirm with additional signals.
Divergences:
Look for divergences between the VW RSI and price to spot potential reversals. For example, if the price makes a higher high but the VW RSI makes a lower high, this bearish divergence may signal an impending downtrend.
Conversely, if the price makes a lower low but the VW RSI makes a higher low, this bullish divergence may signal an impending uptrend.
Momentum Shifts:
A crossover above 50 can signal the start of bullish momentum, making it a potential entry point for long trades.
A crossunder below 50 can signal the start of bearish momentum, making it a potential entry point for short trades or an exit for long positions.
Example
On a 4-hour SOLUSDT chart:
During an uptrend, the VW RSI might rise above 50 and stay there, confirming bullish volume momentum. If it approaches 70, it may indicate overbought conditions, as seen near a price peak of 145.08, suggesting a potential pullback.
During a downtrend, the VW RSI might fall below 50, confirming bearish volume momentum. If it drops below 30 near a price low of 141.82, it may indicate oversold conditions, suggesting a potential bounce, as seen in a slight recovery afterward.
A bullish divergence might occur if the price makes a lower low during the downtrend, but the VW RSI makes a higher low, signaling a potential reversal.
Limitations
Lagging Nature: Like the traditional RSI, the VW RSI is a lagging indicator because it relies on smoothed data (RMA). It may not react quickly to sudden price reversals, potentially missing the start of new trends.
False Signals in Ranging Markets: In choppy or ranging markets, the VW RSI may oscillate around 50, generating frequent crossovers that lead to false signals. Combining it with a trend filter (e.g., ADX) can help mitigate this.
Volume Data Dependency: The VW RSI relies on accurate volume data, which may be inconsistent or unavailable in some markets (e.g., certain forex pairs or futures contracts). In such cases, the indicator’s effectiveness may be reduced.
Overbought/Oversold in Strong Trends: During strong trends, the VW RSI can remain in overbought or oversold territory for extended periods, leading to premature exit signals. Use additional confirmation to avoid exiting too early.
Potential Improvements
Smoothing Options: Add options to use different smoothing methods (e.g., EMA, SMA) instead of RMA for the up/down volume calculations, allowing users to adjust the indicator’s responsiveness.
Divergence Detection: Include logic to detect and plot bullish/bearish divergences between the VW RSI and price, providing visual cues for potential reversals.
Customizable Colors: Allow users to customize the colors of the VW RSI line, centerline, overbought/oversold lines, and background shading.
Trend Filter: Integrate a trend strength filter (e.g., ADX > 25) to ensure signals are generated only during strong trends, reducing false signals in ranging markets.
The Volume Weighted RSI (VW RSI) is a powerful tool for traders seeking to incorporate volume into their momentum analysis, offering a unique perspective on market dynamics by emphasizing price movements backed by significant trading activity. It is best used in conjunction with other indicators and price action analysis to confirm signals and improve trading decisions.
Uptrick: Zero Lag HMA Trend Suite1. Name and Purpose
Uptrick: Zero Lag HMA Trend Suite is a Pine Version 6 script that builds upon the Hull Moving Average (HMA) to offer an advanced trend analysis tool. Its purpose is to help traders identify trend direction, potential reversals, and overall market momentum with reduced lag compared to traditional moving averages. By combining the HMA with Average True Range (ATR) thresholds, slope-dependent coloring, Volume Weighted Average Price (VWAP) ribbons, and optional reversal signals, the script aims to give a detailed view of price activity in various market environments.
2. Overview
This script begins with the calculation of a Hull Moving Average, a method that blends Weighted Moving Averages in a way designed to cut down on lag while still smoothing out price fluctuations. Next, several enhancements are applied. The script compares current HMA values to previous ones for slope-based coloring, which highlights uptrends and downtrends at a glance. It also plots buy and sell signals when price moves beyond or below thresholds determined by the ATR and the user’s chosen signal multiplier. An optional VWAP ribbon can be shown to confirm bullish or bearish conditions relative to a volume-weighted benchmark. Additionally, the script can plot reversal signals (labeled with B) at points where price crosses back toward the HMA from above or below. Taken together, these elements allow traders to visualize both the short-term momentum and the broader context of how price interacts with volatility and overall market direction.
3. Why These Indicators Have Been Linked Together
The reason the Hull Moving Average, the Average True Range, and the VWAP have been integrated into one script is to tackle multiple facets of market analysis in a single tool. The Zero Lag Hull Moving Average provides a responsive trend line, the ATR offers a measure of volatility that helps distinguish significant price shifts from typical fluctuations, and the VWAP acts as a reference for fair value based on traded volume. By layering all three, the script helps traders avoid the need to juggle multiple separate indicators and offers a holistic perspective. The slope-based coloring focuses on trend direction, the ATR-based thresholds refine possible buy and sell zones, and the VWAP ribbons provide insight into how price stands relative to an important volume-weighted level. The inclusion of up and down signals and reversal B labels further refines entries and exits.
4. Why Use Uptrick: Zero Lag HMA Trend Suite
The Hull Moving Average is already known for reacting more quickly to price changes compared to other moving averages while retaining a degree of smoothness. This suite enhances the basic HMA by showing colored gradients that make it easy to spot trend direction changes, highlighting potential entry or exit points based on volatility-driven thresholds, and optionally layering a volume-based measure of bullish or bearish market sentiment. By relying on a zero lag approach and additional data points, the script caters to those wanting a more responsive method of identifying shifts in market dynamics. The added reversal signals and up or down alerts give traders extra confirmation for potential turning points.
5. How This Extension Improves on the Basic HMA
This extension not only plots the Hull Moving Average but also includes data-driven alerts and visual cues that traditional HMA lines do not provide. First, it offers multi-layered slope coloring, making up or down trends quickly apparent. Second, it uses ATR-based thresholds to pinpoint moments when price may be extending beyond normal volatility, thus generating buy or sell signals. Third, the script introduces an optional VWAP ribbon to indicate whether the market is trading above or below this pivotal volume-weighted benchmark, adding a further confirmation step for bullish or bearish conditions. Finally, it incorporates optional reversal signals labeled with B, indicating points where price might swing back toward the main HMA line.
6. Core Components
The script can be broken down into several primary functions and features.
a. Zero Lag HMA Calculation
Uses two Weighted Moving Averages (half-length and full-length) combined through a smoothing step based on the square root of the chosen length. This approach is designed to reduce lag significantly compared to other moving averages.
b. Slope Detection
Compares current and prior HMA values to determine if the trend is up or down. The slope-based coloring changes between turquoise shades for upward movement and magenta shades for downward movement, making trend direction immediately visible.
c. ATR-Based Thresholding for Up and Down Signals
The script calculates an Average True Range over a user-defined period, then multiplies it by a signal factor to form two bands around the HMA. When price crosses below the lower band, an up (buy) signal appears; when it crosses above the upper band, a down (sell) signal is shown.
d. Reversal Signals (B Labels)
Tracks when price transitions back toward the main HMA from an extreme zone. When enabled, these reversal points are labeled with a B and can help traders see potential turning points or mean-reversion setups.
e. VWAP Bands
An optional Volume Weighted Average Price ribbon that plots above or below the HMA, indicating bullish or bearish conditions relative to a volume-weighted price benchmark. This can also act as a kind of support/ resistance.
7. User Inputs
a. HMA Length
Controls how quickly the moving average responds to price changes. Shorter lengths react faster but can lead to more frequent signals, whereas longer lengths produce smoother lines.
b. Source
Specifies the price input, such as close or an alternative source, for the calculation. This can help align the HMA with specific trading strategies.
c. ATR Length and Signal Multiplier
Defines how the script calculates average volatility and sets thresholds for buy or sell alerts. Adjusting these values can help filter out noise or highlight more aggressive signals.
d. Slope Index
Determines how many bars to look back for detecting slope direction, influencing how sensitive the slope coloring is to small fluctuations.
e. Show Buy and Sell Signals, Reversal Signals, and VWAP
Lets users toggle the display of these features. Turning off certain elements can reduce chart clutter if traders prefer a simpler layout.
8. Calculation Process
The script’s calculation follows a step-by-step approach. It first computes two Weighted Moving Averages of the selected price source, one over half the specified length and one over the full length. It then combines these using 2*wma1 minus wma2 to reduce lag, followed by applying another weighted average using the square root of the length. Simultaneously, it computes the ATR for a user-defined period. By multiplying ATR by the signal multiplier, it establishes upper and lower bands around the HMA, where crossovers generate buy (up) or sell (down) signals. The script can also plot reversal signals (B labels) when price crosses back from these bands in the opposite direction. For the optional VWAP feature, Pine Script’s ta.vwap function is used, and differences between the HMA and VWAP levels determine the color and opacity of the ribbon.
9. Signal Generation and Filtering
The ATR-based thresholds reduce the influence of small, inconsequential price swings. When price falls below the lower band, the script issues an up (buy) signal. If price breaks above the upper band, a down (sell) signal appears. These signals are visible through labels placed near the bars. Reversal signals, labeled with B, can be turned on to help detect when price retraces from an extended area back toward the main HMA line. Traders can disable or enable these signals to match their preferred level of chart detail or risk tolerance.
10. Visualization on the Chart
The Zero HMA Lag Trend Suite aims for visual clarity. The HMA line is plotted multiple times with increasing transparency to create a gradient effect. Turquoise gradients indicate upward slopes, and magenta gradients signify downward slopes. Bar coloring can be configured to align with the slope direction, providing quick insight into current momentum. When enabled, buy or sell labels are placed under or above the bars as price crosses the ATR-defined boundaries. If the reversal option is active, B labels appear around areas where price changes direction. The optional VWAP ribbons form background bands, using distinct coloration to signal whether price is above or below the volume-weighted metric.
11. Market Adaptability
Because the script’s parameters (HMA length, ATR length, signal multiplier, and slope index) are user-configurable, it can adapt to a wide range of markets and timeframes. Intraday traders may prefer a shorter HMA length for quick signals, while swing or position traders might use a longer HMA length to filter out short-lived price changes. The source setting can also be adjusted, allowing for specialized data inputs beyond just close or open values.
12. Risk Management Considerations
The script’s signals and labels are based on past price data and volatility readings, and they do not guarantee profitable outcomes. Sharp market reversals or unforeseen fundamental events can produce false signals. Traders should combine this tool with broader risk management strategies, including stop-loss placement, position sizing, and independent market analyses. The Zero HMA Lag Trend Suite can help highlight potential opportunities, but it should not be relied upon as the sole basis for trade decisions.
13. Combining with Other Tools
Many traders choose to verify signals from the Zero HMA Lag Trend Suite using popular indicators like the Relative Strength Index (RSI), Moving Average Convergence Divergence (MACD), or even simple volume-based metrics to confirm whether a price movement has sufficient momentum. Conventional techniques such as support and resistance levels, chart patterns, or candlestick analysis can also supplement signals generated by the script’s up, down, or reversal B labels.
14. Parameter Customization and Examples
a. Short-Term Day Trading
Using a shorter HMA length (for instance, 9 or 14) and a slightly higher ATR multiplier might provide timely buy and sell signals, though it may also produce more whipsaws in choppy markets.
b. Swing or Position Trading
Selecting a longer HMA length (such as 50 or 100) with a moderate ATR multiplier can help users track more significant and sustained market moves, potentially reducing the effect of minor fluctuations.
c. Multiple Timeframe Blends
Some traders load two versions of the indicator on the same chart, one for short-term signals (with frequent B label reversals) and another for the broader trend direction, aligning entry and exit decisions with the bigger picture.
15. Realistic Expectations
Even though the Hull Moving Average helps minimize lag and the script incorporates volatility-based filters and optional VWAP overlays, it cannot predict future market behavior with complete accuracy. Periods of low liquidity or sudden market shocks can still lead to signals that do not reflect longer-term trends. Frequent parameter review and manual confirmation are advised before executing trades based solely on the script’s outputs.
16. Theoretical Background
The Hull Moving Average formula aims to balance smoothness with reactivity, accomplished by combining Weighted Moving Averages at varying lengths. By subtracting a slower average from a faster one and then applying another smoothing step with the square root of the original length, the HMA is designed to respond more promptly to price changes than typical exponential or simple moving averages. The ATR component, introduced by J. Welles Wilder, calculates the average range of price movement over a user-defined period, allowing the script to assess volatility and adapt signals accordingly. VWAP provides a volume-weighted benchmark that many institutional traders track to gauge fair intraday value.
17. Originality and Uniqueness
Although multiple HMA-based indicators can be found, Uptrick: Zero Lag HMA Trend Suite sets itself apart by merging slope-based coloring, ATR thresholds, VWAP ribbons, up or down labels, and optional reversal signals all in one cohesive platform. This synergy aims to reduce chart clutter while still giving traders a comprehensive look at trend direction, volatility, and volume-based sentiment.
18. Summary
Uptrick: Zero Lag HMA Trend Suite is a specialized trading script designed to highlight potential market trends and reversals with minimal delay. It leverages the Hull Moving Average for an adaptive yet smooth price line, pairs ATR-based thresholds for detecting possible breakouts or dips, and provides VWAP-based ribbons for added volume-weighted context. Traders can further refine their entries and exits by enabling up or down signals and reversal labels (B) where price may revert toward the HMA. Suitable for a wide range of timeframes and instrument types, the script encourages a disciplined approach to trade management and risk control.
19. Disclaimer
This script is provided for informational and educational purposes only. Trading and investing involve significant financial risk, and no indicator can guarantee success under all conditions. Users should practice robust risk management, including the placement of stop losses and position sizing, and should confirm signals with additional analysis tools. The developer of this script assumes no liability for any trading decisions or outcomes resulting from its use.
Sequence Waves [OmegaTools]the sequence waves indicator, developed by omegatools, is a multi-functional tool designed to detect trends, sequences, and potential reversal signals based on price movements and volume. this indicator has two main modes, "trend" and "sequence," which determine how the indicator calculates directional changes. additional enhancements in this version include reversal signals, allowing users to identify potential long and short opportunities with specific entry cues.
input parameters
mode (mode): chooses the calculation basis for directional movement.
- "trend": uses a midline calculated from the highest high and lowest low over the "trend mode length" period to assess if the price is in an upward or downward trend.
- "sequence": compares the current price to the closing price of the previous "sequence mode length" period to detect shifts in direction.
counter mode (modec): sets whether the counter increments by a fixed amount (1 or -1) or the volume of the bar, impacting the indicator’s sensitivity.
- "fixed": increments or decrements the counter by 1.
- "volume": increments or decrements based on the period’s volume, making the indicator more responsive to high-volume periods.
percentile length (lntp): defines the lookback period for calculating overbought and oversold thresholds using a percentile method. shorter lengths make ob/os levels more reactive.
sensitivity (sens): controls the percentile-based ob/os thresholds, ranging from 10 to 100. higher values narrow ob/os zones, while lower values widen them, impacting signal frequency.
trend mode length (lnt1): sets the period length for midline calculation in trend mode, defaulting to 21. longer periods smooth the midline for detecting major trends.
sequence mode length (lnt2): sets the lookback period in sequence mode, with a default of 4. shorter lengths capture more frequent directional changes, while longer lengths smooth signals.
visual colors:
- up color (upc): sets the color for upward movements.
- down color (dnc): sets the color for downward movements.
calculation logic
midline calculation: in trend mode, a midline is derived from the average of the highest high and lowest low over the "trend mode length" period, acting as a reference to detect upward or downward movements.
counter calculation:
- in trend mode, if the close price is above the midline, the counter increases (or volume if volume mode is selected). it decreases when the price is below.
- in sequence mode, the counter increases if the close is above the closing price from "sequence mode length" periods ago and decreases if below.
the counter resets to zero on direction changes, creating clear directional transitions.
overbought/oversold percentiles: separate arrays track the counter’s values each time the direction changes, creating historical up and down values. ob and os thresholds are dynamically determined based on these arrays, with sizes limited by the percentile length and sensitivity inputs.
reversal signals: two new variables, "long" and "short," detect potential reversal points when the counter crosses specific thresholds:
- long: a long signal is generated when the counter switches to positive and exceeds the down percentile.
- short: a short signal is triggered when the counter switches to negative and exceeds the up percentile.
visual and display elements
counter plot: plots the counter value on the chart with color-coded columns, making it easy to spot directional momentum.
up and down percentiles: displays overbought (up percentile) and oversold (down percentile) thresholds to identify potential reversal zones.
regime background: the background color changes based on market regime:
- bullish (up percentile > down percentile): greenish background.
- bearish (down percentile > up percentile): reddish background.
- neutral (both percentiles equal): grayish background.
reversal signals: plotted as small triangles on the chart for visual confirmation of potential long (triangle up) and short (triangle down) reversal signals.
obs background: changes color when the counter exceeds ob or os thresholds, creating a visual cue for extreme market conditions:
- overbought: background changes to a faint down color.
- oversold: background changes to a faint up color.
status table: displayed on the right side of the chart, providing real-time status information:
- status: shows "overbought," "oversold," "long," "short," or "none" based on the current counter position.
- regime: indicates whether the market is in a "bullish," "bearish," or "neutral" state based on the percentile comparison.
- percentile up/down: displays the current up and down percentiles for quick reference.
how to use the indicator
trend following: in trend mode, use the midline-based counter to gauge if the market is in an uptrend (positive counter) or downtrend (negative counter).
reversal detection: the ob/os thresholds assist in identifying potential reversal points. when the counter exceeds the up percentile, it may indicate an overbought state, suggesting a bearish reversal. similarly, dropping below the down percentile may indicate an oversold state, suggesting a bullish reversal.
entry signals: use the long and short reversal signals for potential entry points, particularly in trending or range-bound markets. these signals are indicated by up and down triangles.
sequence trading: in sequence mode, the indicator tracks shorter-term directional shifts, making it suitable for detecting smaller momentum patterns based on recent price comparisons.
volume sensitivity: selecting volume mode enhances sensitivity to high-volume moves, allowing it to detect stronger market activity in both trend and sequence modes.
the sequence waves indicator is suited to both short-term and long-term traders. it allows for detailed trend analysis, reversal detection, and dynamic ob/os signals. the inclusion of visual reversal cues makes it a flexible tool adaptable to a variety of trading strategies.
PoC Migration Map [BackQuant]PoC Migration Map
A volume structure tool that builds a side volume profile, extracts rolling Points of Control (PoCs), and maps how those PoCs migrate through time so you can see where value is moving, how volume clusters shift, and how that aligns with trend regime.
What this is
This indicator combines a classic volume profile with a segmented PoC trail. It looks back over a configurable window, splits that window into bins by price, and shows you where volume has concentrated. On top of that, it slices the lookback into fixed bar segments, finds the local PoC in each segment, and plots those PoCs as a chain of nodes across the chart.
The result is a "migration map" of value:
A side volume profile that shows how volume is distributed over the recent price range.
A sequence of PoC nodes that show where local value has been accepted over time.
Lines that connect those PoCs to reveal the path of value migration.
Optional trend coloring based on EMA 12 and EMA 21, so each PoC also encodes trend regime.
Used together, this gives you a structural read on where the market has actually traded size, how "value" is moving, and whether that movement is aligned or fighting the current trend.
Core components
Lookback volume profile - a side histogram built from all closes and volumes in the chosen lookback window.
Segmented PoC trail - rolling PoCs computed over fixed bar segments, plotted as nodes in time.
Trend heatmap - optional color mapping of PoC nodes using EMA 12 versus EMA 21.
PoC labels - optional labels on every Nth PoC for easier reading and referencing.
How it works
1) Global lookback and binning
You choose:
Lookback Bars - how far back to collect data.
Number of Bins - how finely to split the price range.
The script:
Finds the highest high and lowest low in the lookback.
Computes the total price range and divides it into equal binCount slices.
Assigns each bar's close and volume into the appropriate price bin.
This creates a discretized volume distribution across the entire lookback.
2) Side volume profile
If "Show Side Profile" is enabled, a right-hand volume profile is drawn:
Each bin becomes a horizontal bar anchored at a configurable "Right Offset" from the current bar.
The horizontal width of each bar is proportional to that bin's volume relative to the maximum volume bin.
Optionally, volume values and percentages are printed inside the profile bars.
Color and transparency are controlled by:
Base Profile Color and its transparency.
A gradient that uses relative volume to modulate opacity between lower volume and higher volume bins.
Profile Width (%) - how wide the maximum bin can extend in bars.
This gives you an at-a-glance view of the volume landscape for the chosen lookback window.
3) Segmenting for PoC migration
To build the PoC trail, the lookback is divided into segments:
Bars per Segment - bars in each local cluster.
Number of Segments - how many segments you want to see back in time.
For each segment:
The script uses the same price bins and accumulates volume only from bars in that segment.
It finds the bin with the highest volume in that segment, which is the local PoC for that segment.
It sets the PoC price to the center of that bin.
It finds the "mid bar" of the segment and places the PoC node at that time on the chart.
This is repeated for each segment from older to newer, so you get a chain of PoCs that shows how local value has migrated over time.
4) Trend regime and color coding
The indicator precomputes:
EMA 12 (Fast).
EMA 21 (Slow).
For each PoC:
It samples EMA 12 and EMA 21 at the mid bar of that segment.
It computes a simple trend score as fast EMA minus slow EMA.
If trend heatmap is enabled, PoC nodes (and the lines between them) are colored by:
Trend Up Color if EMA 12 is above EMA 21.
Trend Down Color if EMA 12 is below EMA 21.
Trend Flat Color if they are roughly equal.
If the trend heatmap is disabled, PoC color is instead based on PoC migration:
If the current PoC is above the previous PoC, use the Up PoC Color.
If the current PoC is below the previous PoC, use the Down PoC Color.
If unchanged, use the Flat PoC Color.
5) Connecting PoCs and labels
Once PoC prices and times are known:
Each PoC is connected to the previous one with a dotted line, using the PoC's color.
Optional labels are placed next to every Nth PoC:
Label text uses a simple "PoC N" scheme.
Label background uses a configurable label background color.
Label border is colored by the PoC's own color for visual consistency.
This turns the PoCs into a visual path that can be read like a "value trajectory" across the chart.
What it plots
When fully enabled, you will see:
A right-sided volume profile for the chosen lookback window, built from volume by price.
Colored horizontal bars representing each price bin's relative volume.
Optional volume text showing each bin's volume and its percentage of the profile maximum.
A series of PoC nodes spaced across the chart at the mid point of each segment.
Dotted lines connecting those PoCs to show the migration path of value.
Optional PoC labels at each Nth node for easier reference.
Color-coding of PoCs and lines either by EMA 12 / 21 trend regime or by up/down PoC drift.
Reading PoC migration and market pressure
Side profile as a pressure map
The side profile shows where trading has been most active:
Thick, opaque bars represent high volume zones and possible high interest or acceptance areas.
Thin, faint bars represent low volume zones, potential rejection or transition areas.
When price trades near a high volume bin, the market is sitting on an area of prior acceptance and size.
When price moves quickly through low volume bins, it often does so with less friction.
This gives you a static map of where the market has been willing to do business within your lookback.
PoC trail as a value migration map
The PoC chain represents "where value has lived" over time:
An upward sloping PoC trail indicates value migrating higher. Buyers have been willing to transact at increasingly higher prices.
A downward sloping trail indicates value migrating lower and sellers pushing the center of mass down.
A flat or oscillating trail indicates balance or rotational behaviour, with no clear directional acceptance.
Taken together, you can interpret:
Side profile as "where the volume mass sits", a static pressure field.
PoC trail as "how that mass has moved", the dynamic path of value.
Trend heatmap as a regime overlay
When PoCs are colored by the EMA 12 / 21 spread:
Green PoCs mark segments where the faster EMA is above the slower EMA, that is, a local uptrend regime.
Red PoCs mark segments where the faster EMA is below the slower EMA, that is, a local downtrend regime.
Gray PoCs mark flat or ambiguous trend segments.
This lets you answer questions like:
"Is value migrating higher while the trend regime is also up?" (trend confirming value).
"Is value migrating higher but most PoCs are red?" (value against the prevailing trend).
"Has value started to roll over just as PoCs flip from green to red?" (early regime transition).
Key settings
General Settings
Lookback Bars - how many bars back to use for both the global volume profile and segment profiles.
Number of Bins - how many price bins to split the high to low range into.
Profile Settings
Show Side Profile - toggle the right-hand volume profile on or off.
Profile Width (%) - how wide the largest volume bar is allowed to be in terms of bars.
Base Profile Color - the starting color for profile bars, with transparency.
Show Volume Values - if enabled, print volume and percent for each non-zero bin.
Profile Text Color - color for volume text inside the profile.
PoC Migration Settings
Show PoC Migration - toggle the PoC trail plotting.
Bars per Segment - the number of bars contained in each segment.
Number of Segments - how many segments to build backwards from the current bar.
Horizontal Spacing (bars) - spacing between PoC nodes when drawn. (Used to separate PoCs horizontally.)
Label Every Nth PoC - draw labels at every Nth PoC (0 or 1 to suppress labels).
Right Offset (bars) - horizontal offset to anchor the side profile on the right.
Up PoC Color - color used when a PoC is higher than the previous one, if trend heatmap is off.
Down PoC Color - color used when a PoC is lower than the previous one, if trend heatmap is off.
Flat PoC Color - color used when the PoC is unchanged, if trend heatmap is off.
PoC Label Background - background color for PoC labels.
Trend Heatmap Settings
Color PoCs By Trend (EMA 12 / 21) - when enabled, overrides simple up/down coloring and uses EMA-based trend colors.
Fast EMA - length for the fast EMA.
Slow EMA - length for the slow EMA.
Trend Up Color - color for PoCs in a bullish EMA regime.
Trend Down Color - color for PoCs in a bearish EMA regime.
Trend Flat Color - color for neutral or flat EMA regimes.
Trading applications
1) Value migration and trend confirmation
Use the PoC path to see if value is following price or lagging it:
In a healthy uptrend, price, PoCs, and trend regime should all lean higher.
In a weakening trend, price may still move up, but PoCs flatten or start drifting lower, suggesting fewer participants are accepting the new highs.
In a downtrend, persistent downward PoC migration confirms that sellers are winning the value battle.
2) Identifying acceptance and rejection zones
Combine the side profile with PoC locations:
High volume bins near clustered PoCs mark strong acceptance zones, good areas to watch for re-tests and decision points.
PoCs that quickly jump across low volume areas can indicate rejection and fast repricing between value zones.
High volume zones with mixed PoC colors may signal balance or prolonged negotiation.
3) Structuring entries and exits
Use the map to refine trade location:
Fade trades against value migration are higher risk unless you see clear signs of exhaustion or regime change.
Pullbacks into prior PoC zones in the direction of the current PoC slope can offer higher quality entries.
Stops placed beyond major accepted zones (clusters of PoCs and high volume bins) are less likely to be hit by random noise.
4) Regime transitions
Watch how PoCs behave as the EMA regime changes:
A flip in EMA 12 versus EMA 21, coupled with a turn in PoC slope, is a strong signal that value is beginning to move with the new trend.
If EMAs flip but PoC migration does not follow, the trend signal may be early or false.
A weakening PoC path (lower highs in PoCs) while trend colors are still green can warn of a late-stage trend.
Best practices
Start with a moderate lookback such as 200 to 300 bars and a moderate bin count such as 20 to 40. Too many bins can make the profile overly granular and sparse.
Align "Bars per Segment" with your trading horizon. For example, 5 to 10 bars for intraday, 10 to 20 bars for swing.
Use the profile and PoC trail as structural context rather than as a direct buy or sell signal. Combine with your existing setups for timing.
Pay attention to clusters of PoCs at similar prices. Those are areas where the market has repeatedly accepted value, and they often matter on future tests.
Notes
This is a structural volume tool, not a complete trading system. It does not manage execution, position sizing or risk management. Use it to understand:
Where the bulk of trading has occurred in your chosen window.
How the center of volume has migrated over time.
Whether that migration is aligned with or fighting the current trend regime.
By turning PoC evolution into a visible path and adding a trend-aware heatmap, the PoC Migration Map makes it easier to see how value has been moving, where the market is likely to feel "heavy" or "light", and how that structure fits into your trading decisions.
SwiftTrend█ OVERVIEW
SwiftTrend is a trend-following indicator inspired by the classic SuperTrend, but built on a completely different calculation method — using the average candle body size and the body midpoint (bodyMid). It reacts very dynamically to changes in momentum strength. The indicator is clean, easy to read, and perfect for traders who want fast yet confirmed trend direction. By adjusting the settings, you can make signals extremely sensitive or, conversely, reduce their frequency to almost completely eliminate trend flips on minor price moves.
█ CONCEPT
The indicator was created to strike the perfect balance between signal speed and effective noise filtering.
Instead of using classic ATR and price extremes (high/low), SwiftTrend uses the average candle body size and the midpoint of the previous candle’s body as its core reference. The dynamic trend line (avgLine) is protected by a tolerance zone – the trend only changes after price closes beyond this zone. This approach delivers significantly faster reaction times than many traditional solutions while maintaining excellent resistance to false signals during ranging markets.
█ FEATURES
Data source:
- Average candle body size: SMA(|open – close|, period)
- Reference point: midpoint of the previous candle’s body (bodyMid )
Dynamic trend line (avgLine):
- Built using Band Multiplier
- The line is “attracted” toward price movement
Tolerance zone (margin):
- Tolerance = Tolerance Multiplier × avgBody
- Default: 2.5 (for both band and tolerance)
Trend change logic:
- Down → Up: close > avgLine + tolerance
- Up → Down: close < avgLine – tolerance
Visual signals:
- “Buy” label (green upward arrow) and “Sell” label (red downward arrow) only on confirmed trend change
- Optional soft gradient fill between trend line and price
- Optional bar coloring based on current trend
- Trend line with breaks at reversal points
Alerts:
- Buy alert – triggers only when the closing price crosses from below to above the marginLineBase
- Sell alert – triggers only when the closing price crosses from above to below the marginLineBase
█ HOW TO USE
Add to chart → paste the code in Pine Editor or search for “SwiftTrend”.
Main settings:
- Average Body Periods → default 100
- Band Multiplier → default 2.5
- Tolerance Multiplier → default 2.5 (key sensitivity parameter)
- Colors, fill, and bar coloring – fully customizable
Interpretation:
- Green line & shading = uptrend
- Red line & shading = downtrend
- Higher Tolerance Multiplier = fewer but higher-quality signals
- Tolerance Multiplier near 0 = ultra-fast signals (aggressive mode)
█ APPLICATIONS
Excellent for:
- Trend-following (enter with trend, exit on reversal)
- Breakout and momentum strategies
- Filtering consolidation and noise – thanks to the adjustable tolerance zone
Best combined with:
- Classic support/resistance levels
- Fibonacci retracements, Pivot Points, psychological round numbers
- Confirmation from oscillators (RSI, Stochastic, MACD)
- Volume or volume profile analysis
Style adaptation:
- Scalping / daytrading → lower Tolerance Multiplier (0.8–1.8) + shorter period
- Swing / position trading → higher values (2.5–5.0) + longer period
█ NOTES
- Works on all markets and timeframes
- Success depends on matching the Tolerance Multiplier to your strategy and the instrument’s volatility
- Higher multiplier & period values = fewer signals, significantly higher quality
- At Tolerance Multiplier = 0 the indicator becomes extremely responsive – perfect for aggressive momentum trading
High Volume Zones with Signals – HVZ█ OVERVIEW
"High Volume Zones with Signals – HVZ" is a technical analysis indicator that identifies High Volume Zones (HVZ) on the chart and draws them as fully customizable boxes. Perfect for traders using price action, ICT, and Smart Money Concepts. The indicator highlights key volume-based support/resistance levels, detects potential consolidation zones (very large candles), and generates precise breakout and exit signals. Flexible volume filters, ATR filter, and visual styling options ensure a clean and highly effective chart.
█ CONCEPTS
The indicator detects candles with volume significantly above the average (default ≥ 2× SMA of volume over 20 periods). Such candles often signal institutional activity and create strong supply/demand zones.
The ATR filter additionally identifies very large candles – frequently a sign of market capitulation (panic buying/selling). Within the range of such a candle, prolonged consolidation often occurs, especially on higher timeframes (e.g., 4H and above).
Why are HVZ important? High-volume zones are areas where the market has left a large number of orders – institutions return there to “refresh” liquidity before the next move. A breakout against the zone’s character triggers a Break signal:
- Bullish HVZ broken downward (close below the lower boundary) → Break Down (sell),
- Bearish HVZ broken upward (close above the upper boundary) → Break Up (buy).
Note: The indicator requires real exchange volume – it will not work correctly on instruments without reported volume (e.g., certain CFDs or forex).
█ FEATURES
- HVZ Detection: Automatic identification of high-volume zones with Volume SMA Length and Volume Multiplier filters; historical initialization up to 500 candles back.
- ATR Filter: Optional detection of very large candles (potential consolidation/capitulation) using - ATR Length and ATR Multiplier; three action modes:
Skip Zone – large candle creates no zone,
Separate Color – zone is drawn in a distinct style (gray by default),
Normal Zone – treated like a regular HVZ.
- Gray zones (large candles, Separate Color): generate exactly the same Break signals as regular zones – based solely on the original candle direction (bullish → Break Down on lower break, bearish → Break Up on upper break). Gray color is only a visual marker for potential consolidation/capitulation zones.
- Customizable Boxes: Separate styles for bullish and bearish zones (border color, background gradient, line thickness and style); adjustable background and 50 % midline transparency.
- Break & Exit Signals:
Break Up/Down – green/red triangle after a candle closes outside the zone (zone disappears, triangle remains as a trace).
Exit Up/Down – green/red circle when price leaves the zone without a full breakout.
Signal Type option: Break, Exit, or Both.
- Midline: Automatic dashed line at the 50 % zone level with independent transparency control.
- Chart Cleanup: Automatic removal of inactive zones older than 500 candles (max_boxes_count=500).
- Alerts: Built-in alerts for Break Up and Break Down with clear messages.
█ HOW TO USE
Add to Chart: Paste the script in Pine Editor or find it in TradingView’s indicator library.
Configure Settings:
- Volume Filter: Volume SMA Length (default 20) and Volume Multiplier (default 2.0) – higher multiplier = fewer but stronger zones.
- ATR Filter: Enable/disable, set ATR Length (14) and ATR Multiplier (3.5); choose action for very large candles (Skip Zone / Separate Color / Normal Zone).
- Box Style: Background transparency (90) and midline transparency (70).
- Bull/Bear Box Style: Border and gradient colors, line thickness (1-5).
- ATR Style: Separate colors for large-candle zones (gray by default).
- Signal Settings: Choose Signal Type (Break/Exit/Both) and signal colors.
Signal Interpretation:
- Break Up (green triangle below bar): Bearish HVZ broken upward → buy signal, continuation of uptrend.
- Break Down (red triangle above bar): Bullish HVZ broken downward → sell signal, continuation of downtrend.
- Exit Up/Down (circles): Price leaves zone without breakout – may signal end of correction or reversal setup.
- HVZ Zones: Price often returns to high-volume zones to clear orders. An unfilled zone remains a price magnet.
- 50 % Level (midline): Ideal target for partial take-profit or reaction point inside the zone.
Combine signals with other tools (e.g., RSI, MACD, higher timeframes) for higher confidence.
█ APPLICATIONS
- Price Action & ICT: HVZ act as dynamic S/R; in an uptrend look for buys after breaking a bearish HVZ, in a downtrend look for sells after breaking a bullish HVZ. If you trade retests instead of breakouts, increase Volume Multiplier to 2.5-3.0 – fewer zones but much stronger. Note that after breaking a very strong zone, price often pulls back deeply before continuing.
- Breakout Strategies: For maximum Break signals, lower Volume Multiplier to 1.5-1.8 – gives many high-quality entries in trending markets. Always trade in the direction of the prevailing trend (e.g., only longs in uptrends). Enter after a Break signal with confirmation from volume or momentum (MACD above zero, RSI >50 for longs, <50 for shorts).
█ NOTES
- The indicator requires real exchange volume – it will not function properly on instruments without reported volume (e.g., certain CFDs, forex).
- Always confirm signals with additional context (market structure, higher timeframe).
Hybrid Linear Regression Channel with Fibonacci LevelsHow to Use the LRC Fib Hybrid Indicator (Detailed Guide)
1. Read the Trend
2.The thick blue line is the linear regression midline.
If it’s sloping upward → uptrend (favor longs).
If sloping downward → downtrend (favor shorts).
The gray channel bounds are ±2 standard deviations (adjustable).
3. Understand Fibonacci Levels
Fib lines are projected parallel to the regression slope using the channel width as 100%:
Red dashed lines (0.0 to 0.786): Support zones in uptrends.
Blue dashed line (0.5): Midline/neutral.
Green dashed lines (1.0 to 2.618): Resistance zones in downtrends.
Strongest levels: 0.618 (support) and 1.618 (resistance).
4. Buy Signal (Long Entry)
Triggered when:
Midline is rising (uptrend confirmed).
Price crosses above a red Fib level (0.0–0.786).
Volume > 20-period average (if confirmation enabled).
Action:
Enter long on the green triangle (▲).
Stop Loss: Below the lower gray channel or recent swing low.
Take Profit: At 1.0, 1.272, or 1.618 green Fibs.
5. Sell Signal (Short Entry)
Triggered when:
Midline is falling (downtrend).
Price crosses below a green Fib level (1.272–2.618).
Volume > average.
Action:
Enter short on the red triangle (▼).
Stop Loss: Above the upper gray channel.
Take Profit: At 1.0, 0.786, or 0.618 red Fibs.
6. Use the Info Table (Bottom-Right)
Shows live prices of all Fib levels, current trend ("Up"/"Down"), and signal status ("BUY"/"SELL"/"None").
7. Customize via Settings (Gear Icon)
Regression Length: 50–200 (shorter = faster response).
Std Dev Multiplier: 1.5–3.0 (tighter/wider channel).
Toggle Fibs: Hide unused levels to declutter.
Volume Confirmation: Turn off for pure price action.
8. Set Alerts
Right-click chart → Add Alert → Select "Buy Signal" or "Sell Signal" → Enable popup/email/webhook.
9. Best Practices
Best in trending markets (avoid chop).
Wait for volume spike on bounce.
Combine with higher timeframe bias.
Use 0.618/1.618 as primary reversal zones.
This indicator gives you adaptive trend, precise entries, volume filter, and dynamic targets — all in one clean overlay.
Intelligent Currency Breakout ChannelIndicator: Intelligent Currency Breakout Channel
This document provides a detailed explanation of the "Intelligent Currency Breakout Channel" indicator for TradingView.
1. Overview
The Intelligent Currency Breakout Channel is an advanced technical analysis tool designed to identify periods of price consolidation and signal potential breakouts. It automatically draws channels around ranging price action and utilizes sophisticated volume analysis to provide deeper insights into market sentiment. The indicator also includes a built-in logarithmic regression screener to help traders align their breakout signals with the broader market trend.
2. Key Features
Automatic Channel Detection: The indicator identifies periods of low volatility and automatically draws a containing channel (box) around the price action.
Breakout Signals: It generates clear visual alerts (▲ for bullish, ▼ for bearish) when the price closes decisively outside of a channel.
In-Depth Volume Analysis: Within each channel, the indicator plots volume as candlestick-like bars, offering three distinct modes: Total Volume, Buy/Sell Comparison, and Volume Delta. This helps traders gauge the strength and conviction behind price movements.
Real-time Sentiment Gauge: When a channel is active, a dynamic color-graded gauge appears on the right side of the chart. It visualizes the current volume delta momentum relative to its recent range, offering an at-a-glance sentiment reading.
Integrated Trend Screener: A secondary analysis tool based on logarithmic regression is included to determine the underlying trend direction (Up, Down, or Neutral), which can be used to filter breakout signals.
Fully Customizable: Users can extensively customize all parameters, from calculation lengths and breakout sensitivity to the visual appearance of every component.
3. How to Use
Channel Formation: Watch for the indicator to draw a new channel. This signifies that the market is in a consolidation or ranging phase. The formation of a channel itself can be an alertable event.
Volume Interpretation: Observe the volume bars inside the channel. An increase in volume as the price approaches the channel's upper or lower boundary can foreshadow a potential breakout. Use the Volume Display Mode to analyze if buying pressure (Comparison, Delta) or selling pressure is building.
Breakout Confirmation: A bullish breakout signal (▲) appears when the price closes above the channel's upper boundary. A bearish breakout signal (▼) appears when the price closes below the lower boundary. For higher-quality signals, enable the Strong Closes Only option.
Trend Confirmation (Screener): Use the screener's plot and background color to confirm the broader trend. For instance, you might choose to only take bullish breakout signals when the screener indicates an uptrend (green background) and bearish signals when it indicates a downtrend (red background).
Sentiment Gauge: The pointer on the gauge indicates current momentum. A pointer in the upper (green) section suggests bullish pressure, while a pointer in the lower (red) section suggests bearish pressure. This can provide additional confluence for a trade decision.
4. Settings and Inputs
Main Settings
Overlap Channels: If enabled, allows multiple channels to be drawn on the chart simultaneously, even if they overlap. When disabled, a new channel will only form if it doesn't intersect with an existing one.
Strong Closes Only: If enabled, a breakout is only triggered if the midpoint of the candle's body (average of open and close) is outside the channel. This helps filter out false signals caused by long wicks. If disabled, any close outside the channel triggers a breakout.
Normalization Length: The lookback period (in bars) used for price normalization. A higher value creates a more stable normalization but may be slower to react to recent price changes.
Box Detection Length: The lookback period used to detect the channel formation pattern. A lower value will result in more frequent channels but may be more sensitive to noise. A higher value will result in fewer, but potentially more significant, channels.
Volume Analysis
Show Volume Analysis: Toggles the visibility of the candlestick-like volume bars inside the channel.
Volume Display Mode:
Volume: Displays total volume as symmetrical bars around the channel's midline.
Comparison: Shows buying volume (green) above the midline and selling volume (red) below it.
Delta: Shows the net difference between buying and selling volume. Positive delta is shown above the midline, and negative delta is shown below.
Volume Delta Timeframe Source: The timeframe from which to source volume data for calculations. Using a lower timeframe can provide a more granular view of volume dynamics.
Volume Scaling: A multiplier that adjusts the vertical size of the volume bars relative to the channel's height.
Appearance
Volume Text Size: Sets the size of the volume data text displayed in the corners of the channel. Options: Tiny, Small, Medium, Large.
Bullish Color: The primary color for all bullish visual elements, including breakout signals and positive volume bars.
Bearish Color: The primary color for all bearish visual elements, including breakout signals and negative volume bars.
Screener Settings
Lookback Period: The number of bars used for the logarithmic regression calculation to determine the trend.
Screener Type:
Log Regression Channel: The signal is based on the slope of the entire regression channel over the lookback period. An upward sloping channel is bullish (1), and a downward sloping one is bearish (-1).
Logarithmic Regression: The signal is based on the most recent value of the regression line compared to its value 3 bars ago. This provides a more responsive measure of the immediate trend.
5. Alerts
You can set up the following alerts through the TradingView alerts panel:
New Channel Formed: Triggers when a new price consolidation channel is detected and drawn on the chart.
Bullish Breakout: Triggers when the price breaks out and closes above the upper boundary of a channel.
Bearish Breakout: Triggers when the price breaks out and closes below the lower boundary of a channel.
Is In Channel: Triggers on every bar that the price is currently trading inside an active channel.
Signal UP: Triggers when the Screener's signal turns bullish (1).
Signal DOWN: Triggers when the Screener's signal turns bearish (-1).
ATAI Volume analysis with price action V 1.00ATAI Volume Analysis with Price Action
1. Introduction
1.1 Overview
ATAI Volume Analysis with Price Action is a composite indicator designed for TradingView. It combines per‑side volume data —that is, how much buying and selling occurs during each bar—with standard price‑structure elements such as swings, trend lines and support/resistance. By blending these elements the script aims to help a trader understand which side is in control, whether a breakout is genuine, when markets are potentially exhausted and where liquidity providers might be active.
The indicator is built around TradingView’s up/down volume feed accessed via the TradingView/ta/10 library. The following excerpt from the script illustrates how this feed is configured:
import TradingView/ta/10 as tvta
// Determine lower timeframe string based on user choice and chart resolution
string lower_tf_breakout = use_custom_tf_input ? custom_tf_input :
timeframe.isseconds ? "1S" :
timeframe.isintraday ? "1" :
timeframe.isdaily ? "5" : "60"
// Request up/down volume (both positive)
= tvta.requestUpAndDownVolume(lower_tf_breakout)
Lower‑timeframe selection. If you do not specify a custom lower timeframe, the script chooses a default based on your chart resolution: 1 second for second charts, 1 minute for intraday charts, 5 minutes for daily charts and 60 minutes for anything longer. Smaller intervals provide a more precise view of buyer and seller flow but cover fewer bars. Larger intervals cover more history at the cost of granularity.
Tick vs. time bars. Many trading platforms offer a tick / intrabar calculation mode that updates an indicator on every trade rather than only on bar close. Turning on one‑tick calculation will give the most accurate split between buy and sell volume on the current bar, but it typically reduces the amount of historical data available. For the highest fidelity in live trading you can enable this mode; for studying longer histories you might prefer to disable it. When volume data is completely unavailable (some instruments and crypto pairs), all modules that rely on it will remain silent and only the price‑structure backbone will operate.
Figure caption, Each panel shows the indicator’s info table for a different volume sampling interval. In the left chart, the parentheses “(5)” beside the buy‑volume figure denote that the script is aggregating volume over five‑minute bars; the center chart uses “(1)” for one‑minute bars; and the right chart uses “(1T)” for a one‑tick interval. These notations tell you which lower timeframe is driving the volume calculations. Shorter intervals such as 1 minute or 1 tick provide finer detail on buyer and seller flow, but they cover fewer bars; longer intervals like five‑minute bars smooth the data and give more history.
Figure caption, The values in parentheses inside the info table come directly from the Breakout — Settings. The first row shows the custom lower-timeframe used for volume calculations (e.g., “(1)”, “(5)”, or “(1T)”)
2. Price‑Structure Backbone
Even without volume, the indicator draws structural features that underpin all other modules. These features are always on and serve as the reference levels for subsequent calculations.
2.1 What it draws
• Pivots: Swing highs and lows are detected using the pivot_left_input and pivot_right_input settings. A pivot high is identified when the high recorded pivot_right_input bars ago exceeds the highs of the preceding pivot_left_input bars and is also higher than (or equal to) the highs of the subsequent pivot_right_input bars; pivot lows follow the inverse logic. The indicator retains only a fixed number of such pivot points per side, as defined by point_count_input, discarding the oldest ones when the limit is exceeded.
• Trend lines: For each side, the indicator connects the earliest stored pivot and the most recent pivot (oldest high to newest high, and oldest low to newest low). When a new pivot is added or an old one drops out of the lookback window, the line’s endpoints—and therefore its slope—are recalculated accordingly.
• Horizontal support/resistance: The highest high and lowest low within the lookback window defined by length_input are plotted as horizontal dashed lines. These serve as short‑term support and resistance levels.
• Ranked labels: If showPivotLabels is enabled the indicator prints labels such as “HH1”, “HH2”, “LL1” and “LL2” near each pivot. The ranking is determined by comparing the price of each stored pivot: HH1 is the highest high, HH2 is the second highest, and so on; LL1 is the lowest low, LL2 is the second lowest. In the case of equal prices the newer pivot gets the better rank. Labels are offset from price using ½ × ATR × label_atr_multiplier, with the ATR length defined by label_atr_len_input. A dotted connector links each label to the candle’s wick.
2.2 Key settings
• length_input: Window length for finding the highest and lowest values and for determining trend line endpoints. A larger value considers more history and will generate longer trend lines and S/R levels.
• pivot_left_input, pivot_right_input: Strictness of swing confirmation. Higher values require more bars on either side to form a pivot; lower values create more pivots but may include minor swings.
• point_count_input: How many pivots are kept in memory on each side. When new pivots exceed this number the oldest ones are discarded.
• label_atr_len_input and label_atr_multiplier: Determine how far pivot labels are offset from the bar using ATR. Increasing the multiplier moves labels further away from price.
• Styling inputs for trend lines, horizontal lines and labels (color, width and line style).
Figure caption, The chart illustrates how the indicator’s price‑structure backbone operates. In this daily example, the script scans for bars where the high (or low) pivot_right_input bars back is higher (or lower) than the preceding pivot_left_input bars and higher or lower than the subsequent pivot_right_input bars; only those bars are marked as pivots.
These pivot points are stored and ranked: the highest high is labelled “HH1”, the second‑highest “HH2”, and so on, while lows are marked “LL1”, “LL2”, etc. Each label is offset from the price by half of an ATR‑based distance to keep the chart clear, and a dotted connector links the label to the actual candle.
The red diagonal line connects the earliest and latest stored high pivots, and the green line does the same for low pivots; when a new pivot is added or an old one drops out of the lookback window, the end‑points and slopes adjust accordingly. Dashed horizontal lines mark the highest high and lowest low within the current lookback window, providing visual support and resistance levels. Together, these elements form the structural backbone that other modules reference, even when volume data is unavailable.
3. Breakout Module
3.1 Concept
This module confirms that a price break beyond a recent high or low is supported by a genuine shift in buying or selling pressure. It requires price to clear the highest high (“HH1”) or lowest low (“LL1”) and, simultaneously, that the winning side shows a significant volume spike, dominance and ranking. Only when all volume and price conditions pass is a breakout labelled.
3.2 Inputs
• lookback_break_input : This controls the number of bars used to compute moving averages and percentiles for volume. A larger value smooths the averages and percentiles but makes the indicator respond more slowly.
• vol_mult_input : The “spike” multiplier; the current buy or sell volume must be at least this multiple of its moving average over the lookback window to qualify as a breakout.
• rank_threshold_input (0–100) : Defines a volume percentile cutoff: the current buyer/seller volume must be in the top (100−threshold)%(100−threshold)% of all volumes within the lookback window. For example, if set to 80, the current volume must be in the top 20 % of the lookback distribution.
• ratio_threshold_input (0–1) : Specifies the minimum share of total volume that the buyer (for a bullish breakout) or seller (for bearish) must hold on the current bar; the code also requires that the cumulative buyer volume over the lookback window exceeds the seller volume (and vice versa for bearish cases).
• use_custom_tf_input / custom_tf_input : When enabled, these inputs override the automatic choice of lower timeframe for up/down volume; otherwise the script selects a sensible default based on the chart’s timeframe.
• Label appearance settings : Separate options control the ATR-based offset length, offset multiplier, label size and colors for bullish and bearish breakout labels, as well as the connector style and width.
3.3 Detection logic
1. Data preparation : Retrieve per‑side volume from the lower timeframe and take absolute values. Build rolling arrays of the last lookback_break_input values to compute simple moving averages (SMAs), cumulative sums and percentile ranks for buy and sell volume.
2. Volume spike: A spike is flagged when the current buy (or, in the bearish case, sell) volume is at least vol_mult_input times its SMA over the lookback window.
3. Dominance test: The buyer’s (or seller’s) share of total volume on the current bar must meet or exceed ratio_threshold_input. In addition, the cumulative sum of buyer volume over the window must exceed the cumulative sum of seller volume for a bullish breakout (and vice versa for bearish). A separate requirement checks the sign of delta: for bullish breakouts delta_breakout must be non‑negative; for bearish breakouts it must be non‑positive.
4. Percentile rank: The current volume must fall within the top (100 – rank_threshold_input) percent of the lookback distribution—ensuring that the spike is unusually large relative to recent history.
5. Price test: For a bullish signal, the closing price must close above the highest pivot (HH1); for a bearish signal, the close must be below the lowest pivot (LL1).
6. Labeling: When all conditions above are satisfied, the indicator prints “Breakout ↑” above the bar (bullish) or “Breakout ↓” below the bar (bearish). Labels are offset using half of an ATR‑based distance and linked to the candle with a dotted connector.
Figure caption, (Breakout ↑ example) , On this daily chart, price pushes above the red trendline and the highest prior pivot (HH1). The indicator recognizes this as a valid breakout because the buyer‑side volume on the lower timeframe spikes above its recent moving average and buyers dominate the volume statistics over the lookback period; when combined with a close above HH1, this satisfies the breakout conditions. The “Breakout ↑” label appears above the candle, and the info table highlights that up‑volume is elevated relative to its 11‑bar average, buyer share exceeds the dominance threshold and money‑flow metrics support the move.
Figure caption, In this daily example, price breaks below the lowest pivot (LL1) and the lower green trendline. The indicator identifies this as a bearish breakout because sell‑side volume is sharply elevated—about twice its 11‑bar average—and sellers dominate both the bar and the lookback window. With the close falling below LL1, the script triggers a Breakout ↓ label and marks the corresponding row in the info table, which shows strong down volume, negative delta and a seller share comfortably above the dominance threshold.
4. Market Phase Module (Volume Only)
4.1 Concept
Not all markets trend; many cycle between periods of accumulation (buying pressure building up), distribution (selling pressure dominating) and neutral behavior. This module classifies the current bar into one of these phases without using ATR , relying solely on buyer and seller volume statistics. It looks at net flows, ratio changes and an OBV‑like cumulative line with dual‑reference (1‑ and 2‑bar) trends. The result is displayed both as on‑chart labels and in a dedicated row of the info table.
4.2 Inputs
• phase_period_len: Number of bars over which to compute sums and ratios for phase detection.
• phase_ratio_thresh : Minimum buyer share (for accumulation) or minimum seller share (for distribution, derived as 1 − phase_ratio_thresh) of the total volume.
• strict_mode: When enabled, both the 1‑bar and 2‑bar changes in each statistic must agree on the direction (strict confirmation); when disabled, only one of the two references needs to agree (looser confirmation).
• Color customisation for info table cells and label styling for accumulation and distribution phases, including ATR length, multiplier, label size, colors and connector styles.
• show_phase_module: Toggles the entire phase detection subsystem.
• show_phase_labels: Controls whether on‑chart labels are drawn when accumulation or distribution is detected.
4.3 Detection logic
The module computes three families of statistics over the volume window defined by phase_period_len:
1. Net sum (buyers minus sellers): net_sum_phase = Σ(buy) − Σ(sell). A positive value indicates a predominance of buyers. The code also computes the differences between the current value and the values 1 and 2 bars ago (d_net_1, d_net_2) to derive up/down trends.
2. Buyer ratio: The instantaneous ratio TF_buy_breakout / TF_tot_breakout and the window ratio Σ(buy) / Σ(total). The current ratio must exceed phase_ratio_thresh for accumulation or fall below 1 − phase_ratio_thresh for distribution. The first and second differences of the window ratio (d_ratio_1, d_ratio_2) determine trend direction.
3. OBV‑like cumulative net flow: An on‑balance volume analogue obv_net_phase increments by TF_buy_breakout − TF_sell_breakout each bar. Its differences over the last 1 and 2 bars (d_obv_1, d_obv_2) provide trend clues.
The algorithm then combines these signals:
• For strict mode , accumulation requires: (a) current ratio ≥ threshold, (b) cumulative ratio ≥ threshold, (c) both ratio differences ≥ 0, (d) net sum differences ≥ 0, and (e) OBV differences ≥ 0. Distribution is the mirror case.
• For loose mode , it relaxes the directional tests: either the 1‑ or the 2‑bar difference needs to agree in each category.
If all conditions for accumulation are satisfied, the phase is labelled “Accumulation” ; if all conditions for distribution are satisfied, it’s labelled “Distribution” ; otherwise the phase is “Neutral” .
4.4 Outputs
• Info table row : Row 8 displays “Market Phase (Vol)” on the left and the detected phase (Accumulation, Distribution or Neutral) on the right. The text colour of both cells matches a user‑selectable palette (typically green for accumulation, red for distribution and grey for neutral).
• On‑chart labels : When show_phase_labels is enabled and a phase persists for at least one bar, the module prints a label above the bar ( “Accum” ) or below the bar ( “Dist” ) with a dashed or dotted connector. The label is offset using ATR based on phase_label_atr_len_input and phase_label_multiplier and is styled according to user preferences.
Figure caption, The chart displays a red “Dist” label above a particular bar, indicating that the accumulation/distribution module identified a distribution phase at that point. The detection is based on seller dominance: during that bar, the net buyer-minus-seller flow and the OBV‑style cumulative flow were trending down, and the buyer ratio had dropped below the preset threshold. These conditions satisfy the distribution criteria in strict mode. The label is placed above the bar using an ATR‑based offset and a dashed connector. By the time of the current bar in the screenshot, the phase indicator shows “Neutral” in the info table—signaling that neither accumulation nor distribution conditions are currently met—yet the historical “Dist” label remains to mark where the prior distribution phase began.
Figure caption, In this example the market phase module has signaled an Accumulation phase. Three bars before the current candle, the algorithm detected a shift toward buyers: up‑volume exceeded its moving average, down‑volume was below average, and the buyer share of total volume climbed above the threshold while the on‑balance net flow and cumulative ratios were trending upwards. The blue “Accum” label anchored below that bar marks the start of the phase; it remains on the chart because successive bars continue to satisfy the accumulation conditions. The info table confirms this: the “Market Phase (Vol)” row still reads Accumulation, and the ratio and sum rows show buyers dominating both on the current bar and across the lookback window.
5. OB/OS Spike Module
5.1 What overbought/oversold means here
In many markets, a rapid extension up or down is often followed by a period of consolidation or reversal. The indicator interprets overbought (OB) conditions as abnormally strong selling risk at or after a price rally and oversold (OS) conditions as unusually strong buying risk after a decline. Importantly, these are not direct trade signals; rather they flag areas where caution or contrarian setups may be appropriate.
5.2 Inputs
• minHits_obos (1–7): Minimum number of oscillators that must agree on an overbought or oversold condition for a label to print.
• syncWin_obos: Length of a small sliding window over which oscillator votes are smoothed by taking the maximum count observed. This helps filter out choppy signals.
• Volume spike criteria: kVolRatio_obos (ratio of current volume to its SMA) and zVolThr_obos (Z‑score threshold) across volLen_obos. Either threshold can trigger a spike.
• Oscillator toggles and periods: Each of RSI, Stochastic (K and D), Williams %R, CCI, MFI, DeMarker and Stochastic RSI can be independently enabled; their periods are adjustable.
• Label appearance: ATR‑based offset, size, colors for OB and OS labels, plus connector style and width.
5.3 Detection logic
1. Directional volume spikes: Volume spikes are computed separately for buyer and seller volumes. A sell volume spike (sellVolSpike) flags a potential OverBought bar, while a buy volume spike (buyVolSpike) flags a potential OverSold bar. A spike occurs when the respective volume exceeds kVolRatio_obos times its simple moving average over the window or when its Z‑score exceeds zVolThr_obos.
2. Oscillator votes: For each enabled oscillator, calculate its overbought and oversold state using standard thresholds (e.g., RSI ≥ 70 for OB and ≤ 30 for OS; Stochastic %K/%D ≥ 80 for OB and ≤ 20 for OS; etc.). Count how many oscillators vote for OB and how many vote for OS.
3. Minimum hits: Apply the smoothing window syncWin_obos to the vote counts using a maximum‑of‑last‑N approach. A candidate bar is only considered if the smoothed OB hit count ≥ minHits_obos (for OverBought) or the smoothed OS hit count ≥ minHits_obos (for OverSold).
4. Tie‑breaking: If both OverBought and OverSold spike conditions are present on the same bar, compare the smoothed hit counts: the side with the higher count is selected; ties default to OverBought.
5. Label printing: When conditions are met, the bar is labelled as “OverBought X/7” above the candle or “OverSold X/7” below it. “X” is the number of oscillators confirming, and the bracket lists the abbreviations of contributing oscillators. Labels are offset from price using half of an ATR‑scaled distance and can optionally include a dotted or dashed connector line.
Figure caption, In this chart the overbought/oversold module has flagged an OverSold signal. A sell‑off from the prior highs brought price down to the lower trend‑line, where the bar marked “OverSold 3/7 DeM” appears. This label indicates that on that bar the module detected a buy‑side volume spike and that at least three of the seven enabled oscillators—in this case including the DeMarker—were in oversold territory. The label is printed below the candle with a dotted connector, signaling that the market may be temporarily exhausted on the downside. After this oversold print, price begins to rebound towards the upper red trend‑line and higher pivot levels.
Figure caption, This example shows the overbought/oversold module in action. In the left‑hand panel you can see the OB/OS settings where each oscillator (RSI, Stochastic, Williams %R, CCI, MFI, DeMarker and Stochastic RSI) can be enabled or disabled, and the ATR length and label offset multiplier adjusted. On the chart itself, price has pushed up to the descending red trendline and triggered an “OverBought 3/7” label. That means the sell‑side volume spiked relative to its average and three out of the seven enabled oscillators were in overbought territory. The label is offset above the candle by half of an ATR and connected with a dashed line, signaling that upside momentum may be overextended and a pause or pullback could follow.
6. Buyer/Seller Trap Module
6.1 Concept
A bull trap occurs when price appears to break above resistance, attracting buyers, but fails to sustain the move and quickly reverses, leaving a long upper wick and trapping late entrants. A bear trap is the opposite: price breaks below support, lures in sellers, then snaps back, leaving a long lower wick and trapping shorts. This module detects such traps by looking for price structure sweeps, order‑flow mismatches and dominance reversals. It uses a scoring system to differentiate risk from confirmed traps.
6.2 Inputs
• trap_lookback_len: Window length used to rank extremes and detect sweeps.
• trap_wick_threshold: Minimum proportion of a bar’s range that must be wick (upper for bull traps, lower for bear traps) to qualify as a sweep.
• trap_score_risk: Minimum aggregated score required to flag a trap risk. (The code defines a trap_score_confirm input, but confirmation is actually based on price reversal rather than a separate score threshold.)
• trap_confirm_bars: Maximum number of bars allowed for price to reverse and confirm the trap. If price does not reverse in this window, the risk label will expire or remain unconfirmed.
• Label settings: ATR length and multiplier for offsetting, size, colours for risk and confirmed labels, and connector style and width. Separate settings exist for bull and bear traps.
• Toggle inputs: show_trap_module and show_trap_labels enable the module and control whether labels are drawn on the chart.
6.3 Scoring logic
The module assigns points to several conditions and sums them to determine whether a trap risk is present. For bull traps, the score is built from the following (bear traps mirror the logic with highs and lows swapped):
1. Sweep (2 points): Price trades above the high pivot (HH1) but fails to close above it and leaves a long upper wick at least trap_wick_threshold × range. For bear traps, price dips below the low pivot (LL1), fails to close below and leaves a long lower wick.
2. Close break (1 point): Price closes beyond HH1 or LL1 without leaving a long wick.
3. Candle/delta mismatch (2 points): The candle closes bullish yet the order flow delta is negative or the seller ratio exceeds 50%, indicating hidden supply. Conversely, a bearish close with positive delta or buyer dominance suggests hidden demand.
4. Dominance inversion (2 points): The current bar’s buyer volume has the highest rank in the lookback window while cumulative sums favor sellers, or vice versa.
5. Low‑volume break (1 point): Price crosses the pivot but total volume is below its moving average.
The total score for each side is compared to trap_score_risk. If the score is high enough, a “Bull Trap Risk” or “Bear Trap Risk” label is drawn, offset from the candle by half of an ATR‑scaled distance using a dashed outline. If, within trap_confirm_bars, price reverses beyond the opposite level—drops back below the high pivot for bull traps or rises above the low pivot for bear traps—the label is upgraded to a solid “Bull Trap” or “Bear Trap” . In this version of the code, there is no separate score threshold for confirmation: the variable trap_score_confirm is unused; confirmation depends solely on a successful price reversal within the specified number of bars.
Figure caption, In this example the trap module has flagged a Bear Trap Risk. Price initially breaks below the most recent low pivot (LL1), but the bar closes back above that level and leaves a long lower wick, suggesting a failed push lower. Combined with a mismatch between the candle direction and the order flow (buyers regain control) and a reversal in volume dominance, the aggregate score exceeds the risk threshold, so a dashed “Bear Trap Risk” label prints beneath the bar. The green and red trend lines mark the current low and high pivot trajectories, while the horizontal dashed lines show the highest and lowest values in the lookback window. If, within the next few bars, price closes decisively above the support, the risk label would upgrade to a solid “Bear Trap” label.
Figure caption, In this example the trap module has identified both ends of a price range. Near the highs, price briefly pushes above the descending red trendline and the recent pivot high, but fails to close there and leaves a noticeable upper wick. That combination of a sweep above resistance and order‑flow mismatch generates a Bull Trap Risk label with a dashed outline, warning that the upside break may not hold. At the opposite extreme, price later dips below the green trendline and the labelled low pivot, then quickly snaps back and closes higher. The long lower wick and subsequent price reversal upgrade the previous bear‑trap risk into a confirmed Bear Trap (solid label), indicating that sellers were caught on a false breakdown. Horizontal dashed lines mark the highest high and lowest low of the lookback window, while the red and green diagonals connect the earliest and latest pivot highs and lows to visualize the range.
7. Sharp Move Module
7.1 Concept
Markets sometimes display absorption or climax behavior—periods when one side steadily gains the upper hand before price breaks out with a sharp move. This module evaluates several order‑flow and volume conditions to anticipate such moves. Users can choose how many conditions must be met to flag a risk and how many (plus a price break) are required for confirmation.
7.2 Inputs
• sharp Lookback: Number of bars in the window used to compute moving averages, sums, percentile ranks and reference levels.
• sharpPercentile: Minimum percentile rank for the current side’s volume; the current buy (or sell) volume must be greater than or equal to this percentile of historical volumes over the lookback window.
• sharpVolMult: Multiplier used in the volume climax check. The current side’s volume must exceed this multiple of its average to count as a climax.
• sharpRatioThr: Minimum dominance ratio (current side’s volume relative to the opposite side) used in both the instant and cumulative dominance checks.
• sharpChurnThr: Maximum ratio of a bar’s range to its ATR for absorption/churn detection; lower values indicate more absorption (large volume in a small range).
• sharpScoreRisk: Minimum number of conditions that must be true to print a risk label.
• sharpScoreConfirm: Minimum number of conditions plus a price break required for confirmation.
• sharpCvdThr: Threshold for cumulative delta divergence versus price change (positive for bullish accumulation, negative for bearish distribution).
• Label settings: ATR length (sharpATRlen) and multiplier (sharpLabelMult) for positioning labels, label size, colors and connector styles for bullish and bearish sharp moves.
• Toggles: enableSharp activates the module; show_sharp_labels controls whether labels are drawn.
7.3 Conditions (six per side)
For each side, the indicator computes six boolean conditions and sums them to form a score:
1. Dominance (instant and cumulative):
– Instant dominance: current buy volume ≥ sharpRatioThr × current sell volume.
– Cumulative dominance: sum of buy volumes over the window ≥ sharpRatioThr × sum of sell volumes (and vice versa for bearish checks).
2. Accumulation/Distribution divergence: Over the lookback window, cumulative delta rises by at least sharpCvdThr while price fails to rise (bullish), or cumulative delta falls by at least sharpCvdThr while price fails to fall (bearish).
3. Volume climax: The current side’s volume is ≥ sharpVolMult × its average and the product of volume and bar range is the highest in the lookback window.
4. Absorption/Churn: The current side’s volume divided by the bar’s range equals the highest value in the window and the bar’s range divided by ATR ≤ sharpChurnThr (indicating large volume within a small range).
5. Percentile rank: The current side’s volume percentile rank is ≥ sharp Percentile.
6. Mirror logic for sellers: The above checks are repeated with buyer and seller roles swapped and the price break levels reversed.
Each condition that passes contributes one point to the corresponding side’s score (0 or 1). Risk and confirmation thresholds are then applied to these scores.
7.4 Scoring and labels
• Risk: If scoreBull ≥ sharpScoreRisk, a “Sharp ↑ Risk” label is drawn above the bar. If scoreBear ≥ sharpScoreRisk, a “Sharp ↓ Risk” label is drawn below the bar.
• Confirmation: A risk label is upgraded to “Sharp ↑” when scoreBull ≥ sharpScoreConfirm and the bar closes above the highest recent pivot (HH1); for bearish cases, confirmation requires scoreBear ≥ sharpScoreConfirm and a close below the lowest pivot (LL1).
• Label positioning: Labels are offset from the candle by ATR × sharpLabelMult (full ATR times multiplier), not half, and may include a dashed or dotted connector line if enabled.
Figure caption, In this chart both bullish and bearish sharp‑move setups have been flagged. Earlier in the range, a “Sharp ↓ Risk” label appears beneath a candle: the sell‑side score met the risk threshold, signaling that the combination of strong sell volume, dominance and absorption within a narrow range suggested a potential sharp decline. The price did not close below the lower pivot, so this label remains a “risk” and no confirmation occurred. Later, as the market recovered and volume shifted back to the buy side, a “Sharp ↑ Risk” label prints above a candle near the top of the channel. Here, buy‑side dominance, cumulative delta divergence and a volume climax aligned, but price has not yet closed above the upper pivot (HH1), so the alert is still a risk rather than a confirmed sharp‑up move.
Figure caption, In this chart a Sharp ↑ label is displayed above a candle, indicating that the sharp move module has confirmed a bullish breakout. Prior bars satisfied the risk threshold — showing buy‑side dominance, positive cumulative delta divergence, a volume climax and strong absorption in a narrow range — and this candle closes above the highest recent pivot, upgrading the earlier “Sharp ↑ Risk” alert to a full Sharp ↑ signal. The green label is offset from the candle with a dashed connector, while the red and green trend lines trace the high and low pivot trajectories and the dashed horizontals mark the highest and lowest values of the lookback window.
8. Market‑Maker / Spread‑Capture Module
8.1 Concept
Liquidity providers often “capture the spread” by buying and selling in almost equal amounts within a very narrow price range. These bars can signal temporary congestion before a move or reflect algorithmic activity. This module flags bars where both buyer and seller volumes are high, the price range is only a few ticks and the buy/sell split remains close to 50%. It helps traders spot potential liquidity pockets.
8.2 Inputs
• scalpLookback: Window length used to compute volume averages.
• scalpVolMult: Multiplier applied to each side’s average volume; both buy and sell volumes must exceed this multiple.
• scalpTickCount: Maximum allowed number of ticks in a bar’s range (calculated as (high − low) / minTick). A value of 1 or 2 captures ultra‑small bars; increasing it relaxes the range requirement.
• scalpDeltaRatio: Maximum deviation from a perfect 50/50 split. For example, 0.05 means the buyer share must be between 45% and 55%.
• Label settings: ATR length, multiplier, size, colors, connector style and width.
• Toggles : show_scalp_module and show_scalp_labels to enable the module and its labels.
8.3 Signal
When, on the current bar, both TF_buy_breakout and TF_sell_breakout exceed scalpVolMult times their respective averages and (high − low)/minTick ≤ scalpTickCount and the buyer share is within scalpDeltaRatio of 50%, the module prints a “Spread ↔” label above the bar. The label uses the same ATR offset logic as other modules and draws a connector if enabled.
Figure caption, In this chart the spread‑capture module has identified a potential liquidity pocket. Buyer and seller volumes both spiked above their recent averages, yet the candle’s range measured only a couple of ticks and the buy/sell split stayed close to 50 %. This combination met the module’s criteria, so it printed a grey “Spread ↔” label above the bar. The red and green trend lines link the earliest and latest high and low pivots, and the dashed horizontals mark the highest high and lowest low within the current lookback window.
9. Money Flow Module
9.1 Concept
To translate volume into a monetary measure, this module multiplies each side’s volume by the closing price. It tracks buying and selling system money default currency on a per-bar basis and sums them over a chosen period. The difference between buy and sell currencies (Δ$) shows net inflow or outflow.
9.2 Inputs
• mf_period_len_mf: Number of bars used for summing buy and sell dollars.
• Label appearance settings: ATR length, multiplier, size, colors for up/down labels, and connector style and width.
• Toggles: Use enableMoneyFlowLabel_mf and showMFLabels to control whether the module and its labels are displayed.
9.3 Calculations
• Per-bar money: Buy $ = TF_buy_breakout × close; Sell $ = TF_sell_breakout × close. Their difference is Δ$ = Buy $ − Sell $.
• Summations: Over mf_period_len_mf bars, compute Σ Buy $, Σ Sell $ and ΣΔ$ using math.sum().
• Info table entries: Rows 9–13 display these values as texts like “↑ USD 1234 (1M)” or “ΣΔ USD −5678 (14)”, with colors reflecting whether buyers or sellers dominate.
• Money flow status: If Δ$ is positive the bar is marked “Money flow in” ; if negative, “Money flow out” ; if zero, “Neutral”. The cumulative status is similarly derived from ΣΔ.Labels print at the bar that changes the sign of ΣΔ, offset using ATR × label multiplier and styled per user preferences.
Figure caption, The chart illustrates a steady rise toward the highest recent pivot (HH1) with price riding between a rising green trend‑line and a red trend‑line drawn through earlier pivot highs. A green Money flow in label appears above the bar near the top of the channel, signaling that net dollar flow turned positive on this bar: buy‑side dollar volume exceeded sell‑side dollar volume, pushing the cumulative sum ΣΔ$ above zero. In the info table, the “Money flow (bar)” and “Money flow Σ” rows both read In, confirming that the indicator’s money‑flow module has detected an inflow at both bar and aggregate levels, while other modules (pivots, trend lines and support/resistance) remain active to provide structural context.
In this example the Money Flow module signals a net outflow. Price has been trending downward: successive high pivots form a falling red trend‑line and the low pivots form a descending green support line. When the latest bar broke below the previous low pivot (LL1), both the bar‑level and cumulative net dollar flow turned negative—selling volume at the close exceeded buying volume and pushed the cumulative Δ$ below zero. The module reacts by printing a red “Money flow out” label beneath the candle; the info table confirms that the “Money flow (bar)” and “Money flow Σ” rows both show Out, indicating sustained dominance of sellers in this period.
10. Info Table
10.1 Purpose
When enabled, the Info Table appears in the lower right of your chart. It summarises key values computed by the indicator—such as buy and sell volume, delta, total volume, breakout status, market phase, and money flow—so you can see at a glance which side is dominant and which signals are active.
10.2 Symbols
• ↑ / ↓ — Up (↑) denotes buy volume or money; down (↓) denotes sell volume or money.
• MA — Moving average. In the table it shows the average value of a series over the lookback period.
• Σ (Sigma) — Cumulative sum over the chosen lookback period.
• Δ (Delta) — Difference between buy and sell values.
• B / S — Buyer and seller share of total volume, expressed as percentages.
• Ref. Price — Reference price for breakout calculations, based on the latest pivot.
• Status — Indicates whether a breakout condition is currently active (True) or has failed.
10.3 Row definitions
1. Up volume / MA up volume – Displays current buy volume on the lower timeframe and its moving average over the lookback period.
2. Down volume / MA down volume – Shows current sell volume and its moving average; sell values are formatted in red for clarity.
3. Δ / ΣΔ – Lists the difference between buy and sell volume for the current bar and the cumulative delta volume over the lookback period.
4. Σ / MA Σ (Vol/MA) – Total volume (buy + sell) for the bar, with the ratio of this volume to its moving average; the right cell shows the average total volume.
5. B/S ratio – Buy and sell share of the total volume: current bar percentages and the average percentages across the lookback period.
6. Buyer Rank / Seller Rank – Ranks the bar’s buy and sell volumes among the last (n) bars; lower rank numbers indicate higher relative volume.
7. Σ Buy / Σ Sell – Sum of buy and sell volumes over the lookback window, indicating which side has traded more.
8. Breakout UP / DOWN – Shows the breakout thresholds (Ref. Price) and whether the breakout condition is active (True) or has failed.
9. Market Phase (Vol) – Reports the current volume‑only phase: Accumulation, Distribution or Neutral.
10. Money Flow – The final rows display dollar amounts and status:
– ↑ USD / Σ↑ USD – Buy dollars for the current bar and the cumulative sum over the money‑flow period.
– ↓ USD / Σ↓ USD – Sell dollars and their cumulative sum.
– Δ USD / ΣΔ USD – Net dollar difference (buy minus sell) for the bar and cumulatively.
– Money flow (bar) – Indicates whether the bar’s net dollar flow is positive (In), negative (Out) or neutral.
– Money flow Σ – Shows whether the cumulative net dollar flow across the chosen period is positive, negative or neutral.
The chart above shows a sequence of different signals from the indicator. A Bull Trap Risk appears after price briefly pushes above resistance but fails to hold, then a green Accum label identifies an accumulation phase. An upward breakout follows, confirmed by a Money flow in print. Later, a Sharp ↓ Risk warns of a possible sharp downturn; after price dips below support but quickly recovers, a Bear Trap label marks a false breakdown. The highlighted info table in the center summarizes key metrics at that moment, including current and average buy/sell volumes, net delta, total volume versus its moving average, breakout status (up and down), market phase (volume), and bar‑level and cumulative money flow (In/Out).
11. Conclusion & Final Remarks
This indicator was developed as a holistic study of market structure and order flow. It brings together several well‑known concepts from technical analysis—breakouts, accumulation and distribution phases, overbought and oversold extremes, bull and bear traps, sharp directional moves, market‑maker spread bars and money flow—into a single Pine Script tool. Each module is based on widely recognized trading ideas and was implemented after consulting reference materials and example strategies, so you can see in real time how these concepts interact on your chart.
A distinctive feature of this indicator is its reliance on per‑side volume: instead of tallying only total volume, it separately measures buy and sell transactions on a lower time frame. This approach gives a clearer view of who is in control—buyers or sellers—and helps filter breakouts, detect phases of accumulation or distribution, recognize potential traps, anticipate sharp moves and gauge whether liquidity providers are active. The money‑flow module extends this analysis by converting volume into currency values and tracking net inflow or outflow across a chosen window.
Although comprehensive, this indicator is intended solely as a guide. It highlights conditions and statistics that many traders find useful, but it does not generate trading signals or guarantee results. Ultimately, you remain responsible for your positions. Use the information presented here to inform your analysis, combine it with other tools and risk‑management techniques, and always make your own decisions when trading.
ABS Companion Oscillator — Trend / Exhaustion / New Trend (v1.1)
# ABS Companion Oscillator — Trend / Exhaustion / New Trend (v1.1)
## What it is (quick take)
**ABS CO** is a unified **–100…+100 trend oscillator** that fuses:
* **Regime**: EMA stack (fast/slow/long) + **HTF slope** (e.g., 60-minute)
* **Momentum**: **TSI** vs its signal
* **Stretch**: session-anchored **VWAP Z-score** for exhaustion and “fresh-trend” sanity checks
It paints the oscillator with **lime** in upstate, **red** in downstate, **gray** in neutral, and tags:
* **NEW↑ / NEW↓** when a **new trend** likely starts (zero-line cross with acceptable stretch)
* **EXH↑ / EXH↓** when an **existing trend looks exhausted** (large |Z| + momentum rollback)
> Use it as a **direction filter and context layer**. Works great in front of an entry engine and behind an exit tool.
---
## How to use it (operational workflow)
1. **Read the state**
* **Uptrend** when the oscillator is **≥ upThresh** (default +55) → prefer **long-side** plays.
* **Downtrend** when the oscillator is **≤ dnThresh** (default −55) → prefer **short-side** plays.
* **Neutral** between thresholds → be selective or flat; expect chop.
2. **Act on events**
* **NEW↑ / NEW↓**: zero-line cross with acceptable |Z| (not already overstretched). Treat as **trend start** cues.
* **EXH↑ / EXH↓**: trend state with **high |Z|** and TSI rollback versus its signal. Treat as **trend fatigue**; avoid fresh go-with entries and tighten risk.
3. **Practical pairing**
* Use **up/down state** (or above/below **neutralBand**) as your go/no-go filter for entries.
* Prioritize entries **with** NEW↑/NEW↓ and **without** nearby EXH tags.
* Keep holding while the oscillator stays in state and no EXH appears; consider scaling out on EXH or on your exit tool.
---
## Visual semantics & alerts
* **ABS CO line** (–100…+100): lime in upstate, red in downstate, gray in neutral.
* **Horizontal guides**: `Up` threshold, `Down` threshold, `Zero`, and optional **neutral band** lines.
* **Background heat** (optional): shaded when EXH conditions trigger (lime/red tint with intensity scaled by |Z|).
* **Tags**: `NEW↑`, `NEW↓`, `EXH↑`, `EXH↓`.
**Alerts (stable):**
* **ABS CO — New Uptrend** (NEW↑)
* **ABS CO — New Downtrend** (NEW↓)
* **ABS CO — Exhausted Up** (EXH↑)
* **ABS CO — Exhausted Down** (EXH↓)
Set alerts to **“Once per bar close”** for clean signals.
---
## Non-repainting behavior
* HTF queries use **lookahead\_off**.
* With **Strict NR = true**, the HTF slope is taken from the **prior completed** HTF bar; events evaluate on confirmed bars → **safer, fewer, cleaner**.
* NEW/EXH tags finalize at bar close. Disabling strictness yields earlier but noisier responses.
---
## Every input explained (and how it changes behavior)
### A) Trend & HTF structure
* **EMA Fast / Slow / Long (`emaFastLen`, `emaSlowLen`, `emaLongLen`)**
Control the baseline regime. Larger = smoother, fewer flips; smaller = snappier, more flips.
* **HTF EMA Len (`htfLen`)** & **HTF timeframe (`htfTF`)**
HTF slope filter. Longer len or higher TF = steadier bias (fewer state changes); shorter/ lower = more sensitive.
* **Strict NR (`strictNR`)**
`true` uses the **previous** HTF bar for slope and evaluates on confirmed bars → cleaner, slower.
### B) Momentum (TSI)
* **TSI Long / Short / Signal (`tsiLong`, `tsiShort`, `tsiSig`)**
Standard TSI. Larger values = smoother momentum, fewer EXH triggers; smaller = snappier, more EXH sensitivity.
### C) Stretch (VWAP Z-score)
* **VWAP Z-score length (`zLen`)**
Window for Z over session-anchored VWAP distance. Larger = smoother |Z|; smaller = more reactive stretch detection.
* **Exhaustion |Z| (`zHot`)**
Minimum |Z| to flag **EXH**. Raise to demand **bigger** stretch (fewer EXH); lower to catch milder excess.
* **Max |Z| for NEW (`zNewMax`)**
NEW requires |Z| **≤ zNewMax** (avoid “new trend” when already stretched). Lower = stricter; higher = more NEW tags.
### D) States & thresholds
* **Uptrend threshold (`upThresh`)** / **Downtrend threshold (`dnThresh`)**
Where the oscillator flips into trend states. Widen (e.g., +60/−60) to reduce false states; narrow to get earlier signals.
* **Neutral band (`neutralBand`)**
Visual buffer around zero for “meh” momentum. Larger band = fewer go/no-go flips near zero.
### E) Visuals & tags
* **Show New / Show Exhausted (`showNew`, `showExh`)**
Toggle the tag labels.
* **Shade exhaustion heat (`plotHeat`)**
On = color background when EXH fires. Helpful for scanning.
### F) Smoothing
* **Osc smoothing (`smoothLen`)**
EMA over the raw composite. Higher = steadier line (fewer whip flips); lower = faster turns.
---
## Tuning recipes
* **Trend-day bias (follow moves longer)**
* Raise **`upThresh`** to \~60 and **`dnThresh`** to \~−60
* Keep **`zNewMax`** low (1.0–1.2) to avoid “fresh trend” when stretched
* **`smoothLen`** 3–5 to reduce noise
* **Range-day bias (fade edges)**
* Keep thresholds closer (e.g., +50/−50) for quicker state changes
* Lower **`zHot`** slightly (1.6–1.7) to catch earlier exhaustion
* Consider slightly shorter TSI (e.g., 21/9/5) for faster EXH response
* **Scalping LTF (1–3m)**
* TSI 21/9/5, **`smoothLen`** 1–2
* Thresholds +/-50; **`zNewMax`** 1.0–1.2; **`zHot`** 1.6–1.8
* StrictNR **off** if you want earlier calls (accept more noise)
* **Swing / HTF (1h–D)**
* TSI 35/21/9, **`smoothLen`** 4–7
* Thresholds +/-60\~65; **`zNewMax`** 1.2; **`zHot`** 1.8–2.0
* StrictNR **on** for cleaner bias
---
## Playbooks (how to actually trade it)
* **Go/No-Go Filter**
* Only take **long entries** when the oscillator is **above the neutral band** (preferably ≥ `upThresh`).
* Only take **short entries** when **below** the neutral band (preferably ≤ `dnThresh`).
* Avoid fresh go-with entries if an **EXH** tag appears; let the next setup re-arm.
* **Trend Genesis**
* Treat **NEW↑ / NEW↓** as “green light” for **first pullback** entries in the new direction (ideally within acceptable |Z|).
* **Trend Maturity**
* When in a position and **EXH** prints **against** you, tighten stops, take partials, or lean on your exit tool to protect gains.
---
## Suggested starting points
* **Day trading (5–15m):**
* TSI 25/13/7, `smoothLen=3`, thresholds **+55 / −55**, `zNewMax = 1.2`, `zHot = 1.8`, **StrictNR = true**
* **Scalping (1–3m):**
* TSI 21/9/5, `smoothLen=1–2`, thresholds **+50 / −50**, `zNewMax = 1.1–1.2`, `zHot = 1.6–1.8`, **StrictNR = false** (optional)
* **Swing (1h–D):**
* TSI 35/21/9, `smoothLen=4–6`, thresholds **+60 / −60**, `zNewMax = 1.2`, `zHot = 1.9–2.0`, **StrictNR = true**
---
## Notes & best practices
* **Session anchoring**: Z-score is session-anchored (resets by trading date). If you trade outside standard sessions, verify your data session.
* **Instrument specificity**: Tune **`zHot`**, **`zNewMax`**, and thresholds per symbol and timeframe.
* **Bar-close discipline**: Evaluate tags at **bar close** to avoid intrabar flip-flop.
* This is a **context/confirmation tool**, not a broker or strategy. Combine with your entry/exit rules and position sizing.
---
**Tip:** Start with the suggested day-trading profile. Use this oscillator as your **gate** (only trade with it), let your entry engine time executions, and rely on your exit tool for standardized profit-taking.
Alerts█ OVERVIEW
This library is a Pine Script™ programmers tool that provides functions to simplify the creation of compound conditions and alert messages. With these functions, scripts can use comma-separated "string" lists to specify condition groups from arbitrarily large "bool" arrays , offering a convenient way to provide highly flexible alert creation to script users without requiring numerous inputs in the "Settings/Inputs" menu.
█ CONCEPTS
Compound conditions
Compound conditions are essentially groups of two or more conditions, where each required condition must occur to produce a `true` result. Traders often combine conditions, including signals from various indicators, to drive and reinforce trade decisions. Similarly, programmers use compound conditions in logical operations to create scripts that respond dynamically to groups of events.
Condition conundrum
Providing flexible condition combinations to script users for signals and alerts often poses a significant challenge: input complexity . Conventionally, such flexibility comes at the cost of an extensive list of separate inputs for toggling individual conditions and customizing their properties, often resulting in complicated input menus that are difficult for users to navigate effectively. Furthermore, managing all those inputs usually entails tediously handling many extra variables and logical expressions, making such projects more complex for programmers.
Condensing complexity
This library introduces a technique using parsed strings to reference groups of elements from "bool" arrays , helping to simplify and streamline the construction of compound conditions and alert messages. With this approach, programmers can provide one or more "string" inputs in their scripts where users can list numbers corresponding to the conditions they want to combine.
For example, suppose you have a script that creates alert triggers based on a combination of up to 20 individual conditions, and you want to make inputs for users to choose which conditions to combine. Instead of creating 20 separate checkboxes in the "Settings/Inputs" tab and manually adding associated logic for each one, you can store the conditional values in arrays, make one or more "string" inputs that accept values listing the array item locations (e.g., "1,4,8,11"), and then pass the inputs to these functions to determine the compound conditions formed by the specified groups.
This approach condenses the input space, improving navigability and utility. Additionally, it helps provide high-level simplicity to complex conditional code, making it easier to maintain and expand over time.
█ CALCULATIONS AND USE
This library contains three functions for evaluating compound conditions: `getCompoundConditon()`, `getCompoundConditionsArray()`, and `compoundAlertMessage()`. Each function has two overloads that evaluate compound conditions based on groups of items from one or two "bool" arrays . The sections below explain the functions' calculations and how to use them.
Referencing conditions using "string" index lists
Each function processes "string" values containing comma-separated lists of numerals representing the indices of the "bool" array items to use in its calculations (e.g., "4, 8, 12"). The functions split each supplied "string" list by its commas, then iterate over those specified indices in the "bool" arrays to determine each group's combined `true` or `false` state.
For convenience, the numbers in the "string" lists can represent zero-based indices (where the first item is at index 0) or one-based indices (where the first item is at index 1), depending on the function's `zeroIndex` parameter. For example, an index list of "0, 2, 4" with a `zeroIndex` value of `true` specifies that the condition group uses the first , third , and fifth "bool" values in the array, ignoring all others. If the `zeroIndex` value is `false`, the list "1, 3, 5" also refers to those same elements.
Zero-based indexing is convenient for programmers because Pine arrays always use this index format. However, one-based indexing is often more convenient and familiar for script users, especially non-programmers.
Evaluating one or many condition groups
The `getCompoundCondition()` function evaluates singular condition groups determined by its `indexList` parameter, returning `true` values whenever the specified array elements are `true`. This function is helpful when a script has to evaluate specific groups of conditions and does not require many combinations.
In contrast, the `getCompoundConditionsArray()` function can evaluate numerous condition groups, one for each "string" included in its `indexLists` argument. It returns arrays containing `true` or `false` states for each listed group. This function is helpful when a script requires multiple condition combinations in additional calculations or logic.
The `compoundAlertMessage()` function is similar to the `getCompoundConditionsArray()` function. It also evaluates a separate compound condition group for each "string" in its `indexLists` array, but it returns "string" values containing the marker (name) of each group with a `true` result. You can use these returned values as the `message` argument in alert() calls, display them in labels and other drawing objects, or even use them in additional calculations and logic.
Directional condition pairs
The first overload of each function operates on a single `conditions` array, returning values representing one or more compound conditions from groups in that array. These functions are ideal for general-purpose condition groups that may or may not represent direction information.
The second overloads accept two arrays representing upward and downward conditions separately: `upConditions` and `downConditions`. These overloads evaluate opposing directional conditions in pairs (e.g., RSI is above/below a level) and return upward and downward condition information separately in a tuple .
When using the directional overloads, ensure the `upConditions` and `downConditions` arrays are the same size, with the intended condition pairs at the same indices . For instance, if you have a specific upward RSI condition's value at the first index in the `upConditions` array, include the opposing downward RSI condition's value at that same index in the `downConditions` array. If a condition can apply to both directions (e.g., rising volume), include its value at the same index in both arrays.
Group markers
To simplify the generation of informative alert messages, the `compoundAlertMessage()` function assigns "string" markers to each condition group, where "marker" refers to the group's name. The `groupMarkers` parameter allows you to assign custom markers to each listed group. If not specified, the function generates default group markers in the format "M", where "M" is short for "Marker" and "" represents the group number starting from 1. For example, the default marker for the first group specified in the `indexLists` array is "M1".
The function's returned "string" values contain a comma-separated list with markers for each activated condition group (e.g., "M1, M4"). The function's second overload, which processes directional pairs of conditions, also appends extra characters to the markers to signify the direction. The default for upward groups is "▲" (e.g., "M1▲") and the default for downward ones is "▼" (e.g., "M1▼"). You can customize these appended characters with the `upChar` and `downChar` parameters.
Designing customizable alerts
We recommend following these primary steps when using this library to design flexible alerts for script users:
1. Create text inputs for users to specify comma-separated lists of conditions with the input.string() or input.text_area() functions, and then collect all the input values in a "string" array . Note that each separate "string" in the array will represent a distinct condition group.
2. Create arrays of "bool" values representing the possible conditions to choose from. If your script will process pairs of upward and downward conditions, ensure the related elements in the arrays align at the same indices.
3. Call `compoundAlertMessage()` using the arrays from steps 1 and 2 as arguments to get the alert message text. If your script will use the text for alerts only, not historical display or calculation purposes, the call is necessary only on realtime bars .
4. Pass the calculated "string" values as the `message` argument in alert() calls. We recommend calling the function only when the "string" is not empty (i.e., `messageText != ""`). To avoid repainting alerts on open bars, use barstate.isconfirmed in the condition to allow alert triggers only on each bar's close .
5. Test the alerts. Open the "Create Alert" dialog box and select "Any alert() function call" in the "Condition" field. It is also helpful to inspect the strings with Pine Logs .
NOTE: Because the techniques in this library use lists of numbers to specify conditions, we recommend including a tooltip for the "string" inputs that lists the available numbers and the conditions they represent. This tooltip provides a legend for script users, making it simple to understand and utilize. To create the tooltip, declare a "const string" listing the options and pass it to the `input.*()` call's `tooltip` parameter. See the library's example code for a simple demonstration.
█ EXAMPLE CODE
This library's example code demonstrates one possible way to offer a selection of compound conditions with "string" inputs and these functions. It uses three input.string() calls, each accepting a comma-separated list representing a distinct condition group. The title of each input represents the default group marker that appears in the label and alert text. The code collects these three input values in a `conditionGroups` array for use with the `compoundAlertMessage()` function.
In this code, we created two "bool" arrays to store six arbitrary condition pairs for demonstration:
1. Bar up/down: The bar's close price must be above the open price for upward conditions, and vice versa for downward conditions.
2. Fast EMA above/below slow EMA : The 9-period Exponential Moving Average of close prices must be above the 21-period EMA for upward conditions, and vice versa for downward conditions.
3. Volume above average : The bar's volume must exceed its 20-bar average to activate an upward or downward condition.
4. Volume rising : The volume must exceed that of the previous bar to activate an upward or downward condition.
5. RSI trending up/down : The 14-period Relative Strength Index of close prices must be between 50 and 70 for upward conditions, and between 30 and 50 for downward conditions.
6. High volatility : The 7-period Average True Range (ATR) must be above the 40-period ATR to activate an upward or downward condition.
We included a `tooltip` argument for the third input.string() call that displays the condition numbers and titles, where 1 is the first condition number.
The `bullConditions` array contains the `true` or `false` states of all individual upward conditions, and the `bearConditions` array contains all downward condition states. For the conditions that filter either direction because they are non-directional, such as "High volatility", both arrays contain the condition's `true` or `false` value at the same index. If you use these conditions alone, they activate upward and downward alert conditions simultaneously.
The example code calls `compoundAlertMessage()` using the `bullConditions`, `bearConditions`, and `conditionGroups` arrays to create a tuple of strings containing the directional markers for each activated group. On confirmed bars, it displays non-empty strings in labels and uses them in alert() calls. For the text shown in the labels, we used str.replace_all() to replace commas with newline characters, aligning the markers vertically in the display.
Look first. Then leap.
█ FUNCTIONS
This library exports the following functions:
getCompoundCondition(conditions, indexList, minRequired, zeroIndex)
(Overload 1 of 2) Determines a compound condition based on selected elements from a `conditions` array.
Parameters:
conditions (array) : (array) An array containing the possible "bool" values to use in the compound condition.
indexList (string) : (series string) A "string" containing a comma-separated list of whole numbers representing the group of `conditions` elements to use in the compound condition. For example, if the value is `"0, 2, 4"`, and `minRequired` is `na`, the function returns `true` only if the `conditions` elements at index 0, 2, and 4 are all `true`. If the value is an empty "string", the function returns `false`.
minRequired (int) : (series int) Optional. Determines the minimum number of selected conditions required to activate the compound condition. For example, if the value is 2, the function returns `true` if at least two of the specified `conditions` elements are `true`. If the value is `na`, the function returns `true` only if all specified elements are `true`. The default is `na`.
zeroIndex (bool) : (series bool) Optional. Specifies whether the `indexList` represents zero-based array indices. If `true`, a value of "0" in the list represents the first array index. If `false`, a `value` of "1" represents the first index. The default is `true`.
Returns: (bool) `true` if `conditions` elements in the group specified by the `indexList` are `true`, `false` otherwise.
getCompoundCondition(upConditions, downConditions, indexList, minRequired, allowUp, allowDown, zeroIndex)
(Overload 2 of 2) Determines upward and downward compound conditions based on selected elements from `upConditions` and `downConditions` arrays.
Parameters:
upConditions (array) : (array) An array containing the possible "bool" values to use in the upward compound condition.
downConditions (array) : (array) An array containing the possible "bool" values to use in the downward compound condition.
indexList (string) : (series string) A "string" containing a comma-separated list of whole numbers representing the `upConditions` and `downConditions` elements to use in the compound conditions. For example, if the value is `"0, 2, 4"` and `minRequired` is `na`, the function returns `true` for the first value only if the `upConditions` elements at index 0, 2, and 4 are all `true`. If the value is an empty "string", the function returns ` `.
minRequired (int) : (series int) Optional. Determines the minimum number of selected conditions required to activate either compound condition. For example, if the value is 2, the function returns `true` for its first value if at least two of the specified `upConditions` elements are `true`. If the value is `na`, the function returns `true` only if all specified elements are `true`. The default is `na`.
allowUp (bool) : (series bool) Optional. Controls whether the function considers upward compound conditions. If `false`, the function ignores the `upConditions` array, and the first item in the returned tuple is `false`. The default is `true`.
allowDown (bool) : (series bool) Optional. Controls whether the function considers downward compound conditions. If `false`, the function ignores the `downConditions` array, and the second item in the returned tuple is `false`. The default is `true`.
zeroIndex (bool) : (series bool) Optional. Specifies whether the `indexList` represents zero-based array indices. If `true`, a value of "0" in the list represents the first array index. If `false`, a value of "1" represents the first index. The default is `true`.
Returns: ( ) A tuple containing two "bool" values representing the upward and downward compound condition states, respectively.
getCompoundConditionsArray(conditions, indexLists, zeroIndex)
(Overload 1 of 2) Creates an array of "bool" values representing compound conditions formed by selected elements from a `conditions` array.
Parameters:
conditions (array) : (array) An array containing the possible "bool" values to use in each compound condition.
indexLists (array) : (array) An array of strings containing comma-separated lists of whole numbers representing the `conditions` elements to use in each compound condition. For example, if an item is `"0, 2, 4"`, the corresponding item in the returned array is `true` only if the `conditions` elements at index 0, 2, and 4 are all `true`. If an item is an empty "string", the item in the returned array is `false`.
zeroIndex (bool) : (series bool) Optional. Specifies whether the "string" lists in the `indexLists` represent zero-based array indices. If `true`, a value of "0" in a list represents the first array index. If `false`, a value of "1" represents the first index. The default is `true`.
Returns: (array) An array of "bool" values representing compound condition states for each condition group. An item in the array is `true` only if all the `conditions` elements specified by the corresponding `indexLists` item are `true`. Otherwise, the item is `false`.
getCompoundConditionsArray(upConditions, downConditions, indexLists, allowUp, allowDown, zeroIndex)
(Overload 2 of 2) Creates two arrays of "bool" values representing compound upward and
downward conditions formed by selected elements from `upConditions` and `downConditions` arrays.
Parameters:
upConditions (array) : (array) An array containing the possible "bool" values to use in each upward compound condition.
downConditions (array) : (array) An array containing the possible "bool" values to use in each downward compound condition.
indexLists (array) : (array) An array of strings containing comma-separated lists of whole numbers representing the `upConditions` and `downConditions` elements to use in each compound condition. For example, if an item is `"0, 2, 4"`, the corresponding item in the first returned array is `true` only if the `upConditions` elements at index 0, 2, and 4 are all `true`. If an item is an empty "string", the items in both returned arrays are `false`.
allowUp (bool) : (series bool) Optional. Controls whether the function considers upward compound conditions. If `false`, the function ignores the `upConditions` array, and all elements in the first returned array are `false`. The default is `true`.
allowDown (bool) : (series bool) Optional. Controls whether the function considers downward compound conditions. If `false`, the function ignores the `downConditions` array, and all elements in the second returned array are `false`. The default is `true`.
zeroIndex (bool) : (series bool) Optional. Specifies whether the "string" lists in the `indexLists` represent zero-based array indices. If `true`, a value of "0" in a list represents the first array index. If `false`, a value of "1" represents the first index. The default is `true`.
Returns: ( ) A tuple containing two "bool" arrays:
- The first array contains values representing upward compound condition states determined using the `upConditions`.
- The second array contains values representing downward compound condition states determined using the `downConditions`.
compoundAlertMessage(conditions, indexLists, zeroIndex, groupMarkers)
(Overload 1 of 2) Creates a "string" message containing a comma-separated list of markers representing active compound conditions formed by specified element groups from a `conditions` array.
Parameters:
conditions (array) : (array) An array containing the possible "bool" values to use in each compound condition.
indexLists (array) : (array) An array of strings containing comma-separated lists of whole numbers representing the `conditions` elements to use in each compound condition. For example, if an item is `"0, 2, 4"`, the corresponding marker for that item appears in the returned "string" only if the `conditions` elements at index 0, 2, and 4 are all `true`.
zeroIndex (bool) : (series bool) Optional. Specifies whether the "string" lists in the `indexLists` represent zero-based array indices. If `true`, a value of "0" in a list represents the first array index. If `false`, a value of "1" represents the first index. The default is `true`.
groupMarkers (array) : (array) Optional. If specified, sets the marker (name) for each condition group specified in the `indexLists` array. If `na`, the function uses the format `"M"` for each group, where "M" is short for "Marker" and `` represents the one-based index for the group (e.g., the marker for the first listed group is "M1"). The default is `na`.
Returns: (string) A "string" containing a list of markers corresponding to each active compound condition.
compoundAlertMessage(upConditions, downConditions, indexLists, allowUp, allowDown, zeroIndex, groupMarkers, upChar, downChar)
(Overload 2 of 2) Creates two "string" messages containing comma-separated lists of markers representing active upward and downward compound conditions formed by specified element groups from `upConditions` and `downConditions` arrays.
Parameters:
upConditions (array) An array containing the possible "bool" values to use in each upward compound condition.
downConditions (array) An array containing the possible "bool" values to use in each downward compound condition.
indexLists (array) An array of strings containing comma-separated lists of whole numbers representing the `upConditions` and `downConditions` element groups to use in each compound condition. For example, if an item is `"0, 2, 4"`, the corresponding group marker for that item appears in the first returned "string" only if the `upConditions` elements at index 0, 2, and 4 are all `true`.
allowUp (bool) Optional. Controls whether the function considers upward compound conditions. If `false`, the function ignores the `upConditions` array and returns an empty "string" for the first tuple element. The default is `true`.
allowDown (bool) Optional. Controls whether the function considers downward compound conditions. If `false`, the function ignores the `downConditions` array and returns an empty "string" for the second tuple element. The default is `true`.
zeroIndex (bool) Optional. Specifies whether the "string" lists in the `indexLists` represent zero-based array indices. If `true`, a value of "0" in a list represents the first array index. If `false`, a value of "1" represents the first index. The default is `true`.
groupMarkers (array) Optional. If specified, sets the name (marker) of each condition group specified in the `indexLists` array. If `na`, the function uses the format `"M"` for each group, where "M" is short for "Marker" and `` represents the one-based index for the group (e.g., the marker for the first listed group is "M1"). The default is `na`.
upChar (string) Optional. A "string" appended to all group markers for upward conditions to signify direction. The default is "▲".
downChar (string) Optional. A "string" appended to all group markers for downward conditions to signify direction. The default is "▼".
Returns: ( ): A tuple of "string" values containing lists of markers corresponding to active upward and downward compound conditions, respectively.
Top-Down Trend and Key Levels with Swing Points//by antaryaami0
Overview
The “Top-Down Trend and Key Levels with Swing Points” indicator is a comprehensive tool designed to enhance your technical analysis by integrating multiple trading concepts into a single, easy-to-use script. It combines higher timeframe trend analysis, key price levels, swing point detection, and ranging market identification to provide a holistic view of market conditions. This indicator is particularly useful for traders who employ multi-timeframe analysis, support and resistance levels, and price action strategies.
Key Features
1. Higher Timeframe Trend Background Shading:
• Purpose: Identifies the prevailing trend on a higher timeframe to align lower timeframe trading decisions with the broader market direction.
• How it Works: The indicator compares the current higher timeframe close with the previous one to determine if the trend is up, down, or ranging.
• Customization:
• Trend Timeframe: Set your preferred higher timeframe (e.g., Daily, Weekly).
• Up Trend Color & Down Trend Color: Customize the background colors for uptrends and downtrends.
• Ranging Market Color: A separate color to indicate when the market is moving sideways.
2. Key Price Levels:
• Previous Day High (PDH) and Low (PDL):
• Purpose: Identifies key support and resistance levels from the previous trading day.
• Visualization: Plots horizontal lines at PDH and PDL with labels.
• Customization: Option to show or hide these levels and customize their colors.
• Pre-Market High (PMH) and Low (PML):
• Purpose: Highlights the price range during the pre-market session, which can indicate potential breakout levels.
• Visualization: Plots horizontal lines at PMH and PML with labels.
• Customization: Option to show or hide these levels and customize their colors.
3. First 5-Minute Marker (F5H/F5L):
• Purpose: Marks the high or low of the first 5 minutes after the market opens, which is significant for intraday momentum.
• How it Works:
• If the first 5-minute high is above the Pre-Market High (PMH), an “F5H” label is placed at the first 5-minute high.
• If the first 5-minute high is below the PMH, an “F5L” label is placed at the first 5-minute low.
• Visualization: Labels are placed at the 9:35 AM candle (closing of the first 5 minutes), colored in purple by default.
• Customization: Option to show or hide the marker and adjust the marker color.
4. Swing Points Detection:
• Purpose: Identifies significant pivot points in price action to help recognize trends and reversals.
• How it Works: Uses left and right bars to detect pivot highs and lows, then determines if they are Higher Highs (HH), Lower Highs (LH), Higher Lows (HL), or Lower Lows (LL).
• Visualization: Plots small markers (circles) with labels (HH, LH, HL, LL) at the corresponding swing points.
• Customization: Adjust the number of left and right bars for pivot detection and the size of the markers.
5. Ranging Market Detection:
• Purpose: Identifies periods when the market is consolidating (moving sideways) within a defined price range.
• How it Works: Calculates the highest high and lowest low over a specified period and determines if the price range is within a set percentage threshold.
• Visualization: Draws a gray box around the price action during the ranging period and labels the high and low prices at the end of the range.
• Customization: Adjust the range detection period and threshold, as well as the box color.
6. Trend Coloring on Chart:
• Purpose: Provides a visual cue for the short-term trend based on a moving average.
• How it Works: Colors the candles green if the price is above the moving average and red if below.
• Customization: Set the moving average length and customize the uptrend and downtrend colors.
How to Use the Indicator
1. Adding the Indicator to Your Chart:
• Copy the Pine Script code provided and paste it into the Pine Script Editor on TradingView.
• Click “Add to Chart” to apply the indicator.
2. Configuring Inputs and Settings:
• Access Inputs:
• Click on the gear icon next to the indicator’s name on your chart to open the settings.
• Customize Key Levels:
• Show Pre-Market High/Low: Toggle on/off.
• Show Previous Day High/Low: Toggle on/off.
• Show First 5-Minute Marker: Toggle on/off.
• Set Trend Parameters:
• Trend Timeframe for Background: Choose the higher timeframe for trend analysis.
• Moving Average Length for Bar Color: Set the period for the moving average used in bar coloring.
• Adjust Ranging Market Detection:
• Range Detection Period: Specify the number of bars to consider for range detection.
• Range Threshold (%): Set the maximum percentage range for the market to be considered ranging.
• Customize Visuals:
• Colors: Adjust colors for trends, levels, markers, and ranging market boxes.
• Label Font Size: Choose the size of labels displayed on the chart.
• Level Line Width: Set the thickness of the lines for key levels.
3. Interpreting the Indicator:
• Background Shading:
• Green Shade: Higher timeframe is in an uptrend.
• Red Shade: Higher timeframe is in a downtrend.
• Gray Box: Market is ranging (sideways movement).
• Key Levels and Markers:
• PDH and PDL Lines: Represent resistance and support from the previous day.
• PMH and PML Lines: Indicate potential breakout levels based on pre-market activity.
• F5H/F5L Labels: Early indication of intraday momentum after market open.
• Swing Point Markers:
• HH (Higher High): Suggests bullish momentum.
• LH (Lower High): May indicate a potential bearish reversal.
• HL (Higher Low): Supports bullish continuation.
• LL (Lower Low): Indicates bearish momentum.
• Ranging Market Box:
• Gray Box Around Price Action: Highlights consolidation periods where breakouts may occur.
• Range High and Low Labels: Provide the upper and lower bounds of the consolidation zone.
4. Applying the Indicator to Your Trading Strategy:
• Trend Alignment:
• Use the higher timeframe trend shading to align your trades with the broader market direction.
• Key Levels Trading:
• Watch for price reactions at PDH, PDL, PMH, and PML for potential entry and exit points.
• Swing Points Analysis:
• Identify trend continuations or reversals by observing the sequence of HH, HL, LH, and LL.
• Ranging Market Strategies:
• During ranging periods, consider range-bound trading strategies or prepare for breakout trades when the price exits the range.
• Intraday Momentum:
• Use the F5H/F5L marker to gauge early market sentiment and potential intraday trends.
Practical Tips
• Adjust Settings to Your Trading Style:
• Tailor the indicator’s inputs to match your preferred timeframes and trading instruments.
• Combine with Other Indicators:
• Use in conjunction with volume indicators, oscillators, or other technical tools for additional confirmation.
• Backtesting:
• Apply the indicator to historical data to observe how it performs and refine your settings accordingly.
• Stay Updated on Market Conditions:
• Be aware of news events or economic releases that may impact market behavior and the effectiveness of technical levels.
Customization Options
• Time Zone Adjustment:
• The script uses “America/New_York” time zone by default. Adjust the timezone variable in the script if your chart operates in a different time zone.
var timezone = "Your/Timezone"
• Session Times:
• Modify the Regular Trading Session and Pre-Market Session times in the indicator settings to align with the trading hours of different markets or exchanges.
• Visual Preferences:
• Colors: Personalize the indicator’s colors to suit your visual preferences or to enhance visibility.
• Label Sizes: Adjust label sizes if you find them too intrusive or not prominent enough.
• Marker Sizes: Further reduce or enlarge the swing point markers by modifying the swing_marker_size variable.
Understanding the Indicator’s Logic
1. Higher Timeframe Trend Analysis:
• The indicator retrieves the closing prices of a higher timeframe using the request.security() function.
• It compares the current higher timeframe close with the previous one to determine the trend direction.
2. Key Level Calculation:
• Previous Day High/Low: Calculated by tracking the highest and lowest prices of the previous trading day.
• Pre-Market High/Low: Calculated by monitoring price action during the pre-market session.
3. First 5-Minute Marker Logic:
• At 9:35 AM (end of the first 5 minutes after market open), the indicator evaluates whether the first 5-minute high is above or below the PMH.
• It then places the appropriate label (F5H or F5L) on the chart.
4. Swing Points Detection:
• The script uses ta.pivothigh() and ta.pivotlow() functions to detect pivot points.
• It then determines the type of swing point based on comparisons with previous swings.
5. Ranging Market Detection:
• The indicator looks back over a specified number of bars to find the highest high and lowest low.
• It calculates the percentage difference between these two points.
• If the difference is below the set threshold, the market is considered to be ranging, and a box is drawn around the price action.
Limitations and Considerations
• Indicator Limitations:
• Maximum Boxes and Labels: Due to Pine Script limitations, there is a maximum number of boxes and labels that can be displayed simultaneously.
• Performance Impact: Adding multiple visual elements (boxes, labels, markers) can affect the performance of the script on lower-end devices or with large amounts of data.
• Market Conditions:
• False Signals: Like any technical tool, the indicator may produce false signals, especially during volatile or erratic market conditions.
• Not a Standalone Solution: This indicator should be used as part of a comprehensive trading strategy, including risk management and other forms of analysis.
Conclusion
The “Top-Down Trend and Key Levels with Swing Points” indicator is a versatile tool that integrates essential aspects of technical analysis into one script. By providing insights into higher timeframe trends, highlighting key price levels, detecting swing points, and identifying ranging markets, it equips traders with valuable information to make more informed trading decisions. Whether you are a day trader looking for intraday opportunities or a swing trader aiming to align with the broader trend, this indicator can enhance your chart analysis and trading strategy.
Disclaimer
Trading involves significant risk, and it’s important to understand that past performance is not indicative of future results. This indicator is a tool to assist in analysis and should not be solely relied upon for making trading decisions. Always conduct thorough research and consider seeking advice from financial professionals before engaging in trading activities.
Bernoulli Price Dynamics with IntraBar Volume (Bidirectional)This indicator adapts the principles of Bernoulli’s equation from fluid dynamics to analyze price and volume dynamics in the market. By incorporating intrabar volume data and splitting price movements into upward and downward components, it provides a bidirectional view of the market's kinetic and potential energies. This approach helps assess market pressure in both upward and downward directions, offering insights into potential price movement with energy-based mechanics.
Key Features:
Intrabar Volume Integration: The indicator collects up and down volume data from a lower timeframe, such as seconds or minutes, to provide more granular insights.
Bidirectional Market Pressure: By separating upward and downward price movements, it calculates market pressure in both directions, which is akin to fluid pressure. The separation enables tracking of distinct upward and downward energy flows in the market.
Energy Calculation:
Kinetic Energy: This represents the "movement" aspect of the price, weighted by volume. It is calculated for both upward and downward movements based on price velocity squared.
Potential Energy: This represents the "position" aspect of the price, calculated as the product of volume and the current price level. It is also separated into upward and downward components.
Market Pressure: The difference between the total energy (sum of kinetic and potential energies) and the highest observed total energy over a defined period (N). This provides an insight into the current momentum of price movement in both directions.
Visualization:
Market Pressure Up/Down: Plots the calculated market pressure for upward (green) and downward (red) movements.
Kinetic and Potential Energies: Provides individual plots for kinetic and potential energy in both directions to analyze the behavior of price and volume in more detail.
This indicator can be used to track market momentum and potential reversals by understanding the energy and pressure dynamics in both upward and downward price movements.






















